46

Я разрабатывал новую функцию в новой ветке, и на ее стороне было внесено немало изменений в основную ветку.

Можно ли объединить основную ветку с моей новой веткой, чтобы поддерживать ее актуальность, чтобы у меня не было слишком много конфликтов слияния после завершения новой функции?

1 ответ1

53

Вы можете использовать либо git merge master либо git rebase master, в этом случае я бы предпочел git rebase.

Потому что git rebase делает это так, как будто изменения в ветви функций были сделаны поверх изменений в основной ветви, что упрощает граф версий.

Взяв пример из руководства по git rebase:

      A---B---C feature                             A'--B'--C' feature
     /                   --rebase-->               /
D---E---F---G master                  D---E---F---G master

Тем не менее, git rebase подходит только тогда, когда ветвь не была распределена, иначе возникнет путаница и дополнительная работа, потому что старые коммиты A, B, C теперь стали новыми коммитами A ', B', C '.

Если кто-то потянул вашу ветку или вы куда-то ее подтолкнули, вы должны вместо этого слиться с ней, чтобы избежать путаницы и дополнительной работы на другом конце. См. Восстановление из восходящей версии.

      A---B---C feature                    A---B---C---M feature
     /                   --merge-->       /       ,---’
D---E---F---G master                 D---E---F---G master

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .