Это тот же вопрос, что и merge branch that was created from old commit to master, который не получил полного ответа. Поэтому у меня есть следующая ситуация на моей development
ветвиКак слить ветку, сделанную из старой фиксации
$ git commit
commit 1
Все хорошо.
Изменить файлы a
, b
и c
.
$ git commit
commit 2
Автоматизированное тестирование не удалось
Отозванных файлов
$ git commit
commit 3
$ git checkout 2
$ git branch failed
Найти ошибки в b
, исправить, тест
$ git commit
commit 4
$ git checkout development
$ git merge failed
ТОЛЬКО b
слито. a
и c
- нет. Я подтверждаю, что физически смотрю файлы и замечаю, что они разные. A git diff development..failed
еще раз демонстрирует их как разные.
Мне нужны все файлы. Когда я делаю git merge
, я ожидаю, что все будет перенесено, чтобы они были в основном одинаковыми.
я могу сделать тривиальное изменение файлов, чтобы заставить его слить, я могу взять копию failed
ветви и скопировать файлы в development
вручную и проверять их таким образом, я уверен, что есть что-то еще, что я может сделать только заставляя git принимать failed
как новую ветку development
, но все это кажется неправильным ответом, особенно когда я считаю, что моя реальная ситуация намного сложнее, чем всего три файла, и вероятность человеческой ошибки велика.
Как это сделать правильно? Как я могу правильно объединить все файлы, отличные от этого failed
, обратно в development
?
спасибо.
Я понимаю вас правильно? Вы хотите, чтобы 'a' и' c' были такими же, как в * commit 2 * после слияния 'fail' (который начинался с * commit 2 *)? –
Если я делаю 'git checkout 2', а затем' git branch failed', я не получаю ветвь, созданная с именем 'failed'. Я остаюсь в отдельном состоянии HEAD и потеряю любые коммиты при переключении на «развитие» в качестве состояния предупреждения git. Вы уверены, что ветвь 'fail' создана? –
Я, вероятно, не совсем понял, что я сделал, я много бил головой о страницы манер, пытаясь понять, как делать то, что я хочу сделать, но конечный результат заключается в том, что у меня есть ветка «сбой», commit 2 ", который затем меняет файл" b ". Я хочу объединить эту ветку, все три файла, вернуться в разработку (где другие с тех пор также вносили изменения, но не в эти конкретные файлы). – WizardStan