web-dev-qa-db-ja.com

GITで2つのブランチをマージする

私はGITを使い始めたばかりで、すばらしいと思いますが、mergeコマンドが何をするかについて少し混乱しています。

ブランチ「A」に作業プロジェクトがあるとします。

家に帰ってこのブランチを変更し、「B」として保存します。別のプログラマーが「A」に変更を加え、「C」として保存します。

2つのブランチ「B」と「C」を一緒にマージし、「D」などの新しいブランチとして変更をコミットする方法はありますか?

または「マージ」のポイントが欠落していますか?

97
dotty

mergeは、2つ(またはそれ以上)のブランチをまとめるために使用されます。

ちょっとした例:

# 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"

そのため、異なるヘッドを持つ3つの別個のブランチ(つまり、A BとC)があります。

変更をBとCからAに戻すには、Aをチェックアウトし(この例では既に実行されています)、次にmergeコマンドを使用します。

# create an octopus merge
$ git merge B C

履歴は次のようになります。

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

リポジトリ/コンピューターの境界を越えてマージする場合は、git pullコマンドをご覧ください。ブランチAを持つPCから(この例では2つの新しいコミットを作成します):

# pull branch B
$ git pull ssh://Host/… B
# pull branch C
$ git pull ssh://Host/… C
161
knittl

SubBranchの変更をMainBranchにマージする必要がある場合

  1. mainBranchにいるはずです# git checkout MainBranch

  2. 次に、マージコマンドを実行します#git merge SubBranch

12
Mohamed Shaban