Git объединить два местных филиала


147

У меня есть ветвь 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
это не совсем понятно, просто
опубликуйте

9
Это не достаточно ясный ответ .... что значит "обновить ветку-B" ... Есть много способов сделать это, какой? ... вместо переключателя git checkout ветка-A более понятна
Erdinç Çorbacı

2

Ответ от Абирамана был абсолютно правильным. Тем не менее, для новичков в Git, они могут забыть вытащить хранилище. Всякий раз, когда вы хотите выполнить слияние из BranchB в branchA. Сначала извлеките и извлеките ветку B (убедитесь, что ветка обновлена ​​удаленной веткой)

git checkout branchB
git pull

Теперь ваша локальная ветка B обновлена ​​удаленной веткой B Теперь вы можете оформить заказ на ветку A

git checkout branchA

Теперь вы находитесь в BranchA, затем вы можете объединиться с BranchB, используя следующую команду

git merge branchB

0

Если вы или другой разработчик не будете больше работать на branchB, я думаю, что лучше сохранять коммиты, чтобы делать возвраты без головной боли. Так ;

git checkout branchA
git pull --rebase branchB

Важно, чтобы BranchB больше не использовался.

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


1
В своем названии вопрос касается локальных репозиториев - для которых pullне подойдет.
LeeGee

2
Вы правы, я просто подумал, что добавление этих знаний будет плюсом, потому что, вероятно, в конце будет выдвинута локальная ветвь. Но я упустил пункт, который вы указали, я бы лучше добавил это как комментарий, а не как ответ. Спасибо за предупреждение.
Erdinç bacorbacı

0

на ветке B сделать, $git checkout branchAчтобы переключиться на ветку A

на ветке делаю $git merge branchB

Это все, что вам нужно.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.