Git злиття двох місцевих гілок


146

У мене є відділення Master, відділення A та відділення B. Зараз я працюю у гілці A і мені потрібно об'єднати гілку A з гілкою B і продовжувати свою роботу у галузі A. Усі файли розміщені у гілках A і B.

Який швидкий спосіб здійснити це?

Відповіді:


247

Якщо я зрозумів ваше запитання, який ви хочете об'єднати branchBв branchA. Для цього спочатку оформити замовлення, branchAяк показано нижче,

git checkout branchA

Потім виконайте нижченаведену команду для об'єднання branchBв branchA:

git merge branchB

3
Нам потрібно переконатися, що гілки A і B існують у локальному сховищі. Тільки тоді ми можемо виконати злиття.
Сантош

8
Питання явне:I have branch Master, branch A and branch B.
LeeGee

166

Ось чітка картина:

Якщо припустити, що у нас є відділення-A та гілка-B

Ми хочемо об'єднати гілку B у гілку-A

on branch-B -> A: switch to branch-A

on branch-A: git merge branch-B

32
це зовсім не зрозуміло, просто опублікуйте вхід терміналу, що це набагато простіше зрозуміти
lopu

9
Це недостатньо чітка відповідь .... що означає "оновити гілку B" ... Є багато способів зробити це, який з них? ... замість перемикання git checkout відділення-A зрозуміліше
Erdinç Çorbacı

2

Відповідь Авірамана була абсолютно правильною. Однак для новачків, які гніють, вони можуть забути витягнути сховище. Всякий раз, коли ви хочете зробити злиття з відділенняB у відділенняA. Перший замовлення і витягніть з відділенняB (Переконайтеся, що ваша філія оновлена ​​віддаленою гілкою)

git checkout branchB
git pull

Тепер ви локальне відділенняB оновлено віддаленим відділеннямB Тепер ви можете перейти до відділенняA

git checkout branchA

Тепер ви перебуваєте у відділенніA, тоді ви можете об'єднатись із відділеннямB за допомогою наступної команди

git merge branchB

0

Якщо ви чи інший розробник більше не працюватиме на відділенніB, я вважаю, що краще дотримуватися зобов’язань, щоб зробити реверти без головних болів. Так ;

git checkout branchA
git pull --rebase branchB

Важливо, щоб галузьB більше не використовувалася.

Для більш ; https://www.derekgourlay.com/blog/git-when-to-merge-vs-when-to-rebase/


1
У своїй назві питання стосується локальних сховищ - для яких pullне буде працювати.
LeeGee

2
Ви маєте рацію, я просто думав, що додавання цих знань буде плюсом, тому що, ймовірно, місцева гілка буде висунута в кінці. Але я пропустив вказаний вами пункт, я б краще додати це як коментар, а не як відповідь. Дякую, що попередили мене.
Erdinç Çorbacı

0

на branchB зробіть $git checkout branchAперехід на гілку A

на відділенніA робити $git merge branchB

Це все, що вам потрібно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.