#git #version-control #merge
#git #контроль версий #слияние
Вопрос:
У меня есть master
ветка, и я отделился от feature-x
ветки. master
Ветка получила несколько исправлений ошибок в нескольких файлах. feature-x
Ветка создала несколько файлов и затронула только один файл, общий с master
веткой. Когда я должен обновлять feature-x
ветку со всеми исправлениями ошибок, я объединяюсь в master
ветке. Из-за изменения этого одного общего файла я получаю конфликт слияния в этом файле. Я исправляю конфликты в файле, и на этом этапе все следующие файлы автоматически создаются git:
- Все файлы, которые были исправлены в
master
- Все новые файлы, созданные в
feature-x
Затем я должен создать свой обновленный общий файл и зафиксировать, чтобы завершить / разрешить слияние.
Если я посмотрю на фиксацию слияния на GitHub / BitBucket, похоже, что были затронуты тонны файлов, и нет способа определить, какие из них имели и не имели конфликтов слияния.
Это просто природа зверя? Или есть лучший способ сделать это, чтобы иметь возможность определять в фиксации, какие файлы были объединены автоматически, а какие из них должны были иметь ручную помощь?
В моем проекте я, кажется, иногда получаю немного от слияния ветвей и не могу точно определить в коммит слияния, где что-то пошло не так.
Ответ №1:
Вы должны иметь возможность перебазировать свою функциональную ветку поверх Master, а затем объединить изменения. Это приведет к внесению всех изменений / исправлений ошибок на master в вашу ветку, а затем воспроизведет все коммиты поверх них. Вы все равно получите конфликт слияния в одном файле, который оба изменили, поэтому вам просто нужно разрешить этот конфликт, а затем вы можете нажать.
Если вы уже отправили свою ветку на удаленный сервер, вам нужно будет принудительно нажать.
Комментарии:
1. спасибо, Кейф, я только что прочитал
git pull --rebase
, и я думаю, что это то, что я хочу.