1. ホーム
  2. git

[解決済み] GITで2つのブランチをマージする

2022-03-01 01:35:27

質問

GITを使い始めたばかりで、そのすばらしさを実感しているところです。 merge コマンドは何をするのですか?

例えば、作業中のプロジェクトが "A" というブランチにあるとします。

私は家に帰ってこのブランチに変更を加え、"B" として保存します。 別のプログラマが "A" に変更を加え、"C" という名前で保存します。

2つのブランチ "B" と "C" をマージして、その変更を新しいブランチ、例えば "D" としてコミットする方法はありますか?

それとも、「マージ」のポイントがずれているのでしょうか?

解決方法は?

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 から実行します (この例では、新しいコミットが二つ作成されます)。

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