Ви можете або, git merge master
або git rebase master
в цьому випадку я вважаю за краще git rebase .
Оскільки git 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