Я прочитал соответствующие вопросы о git merge и git rebase на SO, но я до сих пор не могу полностью понять, что происходит под капотом.
Вот наша ситуация ветвления:
MASTER------------------------
\ \
\ \----Feature B---
\ \
\-----Feature A----------\---Feature A+B
У нас есть 2 ветки функций, которые происходят от мастера в разное время, теперь мы хотим объединить 2 ветки. Мы хотим следовать практике first rebase then merge
, но когда мы перебазируем компонент A в компонент B, возникают конфликты. Это ожидаемо, потому что обе функции (и главная) имеют изменения в одних и тех же областях. Но странно то, что тот же самый конфликт продолжает появляться после git rebase --continue
. Это сводит нас с ума, поэтому мы прерываем перебазирование и используем git merge
. Оказывается, конфликты на самом деле легко разрешаются.
Мой вопрос двоякий:
- Подходит ли
git rebase
для нашей ситуации? Или rebase подходит только для внесения нескольких (1 или 2) изменений? - Что происходит под капотом, из-за чего один и тот же конфликт возникает снова и снова? Насколько я понимаю,
rebase
разрешать конфликты по одному, но сравнивая какой коммит с чем?
Соответствующие сообщения на SO:
git add conflicted.file
? если нет, git не заметит исправление коммита, иgit rebase --continue
переподнимет файл как еще не разрешенный - person quetzalcoatl   schedule 14.07.2015add conflicted.file
передgit rebase continue
. - person NeoWang   schedule 14.07.2015rerere
. - person jub0bs   schedule 14.07.2015