Вы можете либо, git merge master
либо git rebase master
, в этом случае я бы предпочел git rebase .
Потому что git rebase
делает так, как будто изменения в ветви функций были сделаны поверх изменений в основной ветви, что упрощает граф версий.
Rebase
Взяв пример из руководства по git rebase , git rebase master
в ветке feature
:
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 ', плюс F и G, которые не были там раньше.
Фактический результат после git rebase master
в ветке feature
это:
( A---B---C )
/
/ A'--B'--C' feature
/ /
D---E---F---G master
Коммиты A, B, C висят после перебазирования, но достижимы до конца git reflog feature
.
Объединить
Если кто-то потянул вашу ветку или вы куда-то ее подтолкнули, вы должны вместо этого слиться с ней, чтобы избежать путаницы и дополнительной работы на другом конце. См. Восстановление из восходящей версии .
Это результат git merge master
в ветке feature
:
A---B---C feature A---B---C---M feature
/ --merge--> / ,---’
D---E---F---G master D---E---F---G master
В качестве альтернативы, если вы находитесь git merge feature
в ветке master
, это будет выглядеть так:
A---B---C feature A---B---C feature
/ --merge--> / \
D---E---F---G master D---E---F---G---M master