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