Объедините три ветки GitHub локально
В настоящее время у меня есть сценарий, в котором я хочу локально объединить две ветви в третью ветку. Так что сценарий есть. К вашему сведению, я новичок в github.
- Мастер -> Epic_1
- Мастер -> Epic_2
Теперь я хочу слить ветку Epic_1 сначала с мастером, а затем слить ветку Epic_2 с мастером поверх слитых Epic_1 и мастера. Я не уверен, что искать, чтобы получить правильный ответ, поэтому добавлю этот вопрос. ВАЖНО - Я хочу, чтобы все это делалось только локально, и ничто не должно идти в удаленную ветку.
Спасибо рэй
2 ответа
git checkout master # go to master since that’s your target branch
git merge Epic_1 # merge in the first branch
git merge Epic_2 # merge in the second branch
Это даст вам результат, который выглядит примерно так:
(old) master master (after merges)
↓ ↓
* -- * -- * -- * -- * -- M1 -- M2
/ /
* -- * -- * -- * -- * - /
↑ /
Epic_1 /
/
* -- * -- * -- * -- * -- *
↑
Epic_2
Как и все в Git, это происходит только локально, поэтому ни на одном из ваших пультов это никак не отразится. Конечно, вы можете нажать ветку master, чтобы обновить ее на своем пульте.
Ты только
git fetch # in case these branches are from the remote and to be up-to-date
git checkout master
git merge branch_1
git merge branch_2
Теперь вы можете сделать
git status
а также
git log
чтобы увидеть состояние мастера. Он будет локальным, если / пока вы явно не нажмете мастер на удаленном (возможно origin
в твоем случае).
Если есть коммиты слияния, вам нужно их разрешить, но вы получите соответствующее сообщение, указывающее на это, и это будет отдельный вопрос из этого.
Существует также множество вариантов слияния и перебазирования, а также соответствующие темы, такие как перемотка вперед, но это выходит за рамки этого вопроса.