Объединение 2 ветвей вместе в GIT

Я только начал использовать GIT и думаю, что это замечательно, но я немного смущен тем, что делает команда merge.

Допустим, у нас есть рабочий проект в ветке "A".

Я иду домой и вношу изменения в эту ветку и сохраняю ее как "B". Другой программист вносит изменения в "A" и сохраняет его как "C".

Есть ли способ объединить две ветки "B" и "C" вместе, затем зафиксировать изменения как новую ветку, например "D"?

Или не хватает точки "слияния"?

Ответ 1

merge используется для объединения двух (или более) ветвей.

небольшой пример:

# on branch A:
# create new branch B
$ git checkout -b B
# hack hack
$ git commit -am "commit on branch B"

# create new branch C from A
$ git checkout -b C A
# hack hack
$ git commit -am "commit on branch C"

# go back to branch A
$ git checkout A
# hack hack
$ git commit -am "commit on branch A"

так что теперь есть три отдельные ветки (а именно A B и C) с разными головами

чтобы получить изменения от B и C до A, checkout A (уже сделано в этом примере), а затем использовать команду merge:

# create an octopus merge
$ git merge B C

ваша история будет выглядеть примерно так:

…-o-o-x-------A
      |\     /|
      | B---/ |
       \     /
        C---/

если вы хотите объединить границы репозитория/компьютера, посмотрите на команду git pull, например. из pc с ветвью A (в этом примере создаются две новые коммиты):

# pull branch B
$ git pull ssh://host/… B
# pull branch C
$ git pull ssh://host/… C

Ответ 2

если вам нужно объединить изменения в SubBranch с MainBranch

  1. вы должны быть на MainBranch # git checkout MainBranch

  2. затем выполните команду #git merge SubBranch