を使用してリモートから取得した後git fetch
、次のようなものを使用する必要があります
git merge origin/master
このコマンドも同時に行うかどうかを知りたいgit commit
ですか? 順番はorigin/master
重要ですか?書いてもmaster/original
いいですか?
git merge origin/master
2 つのこと (またはエラー) のいずれかを行うことができます。
最初のケースでは、2 つの親を持つ新しいコミットが作成されます: currentHEAD
と、ref が指すコミットorigin/master
(面白いことをしていない限り、これは (へのローカル ポインター) で名前が付けられたブランチである可能性があります) master
。という名前のリモートorigin
ですが、これは完全に慣習的です)。
ツリー レベルのマージが必要ない 2 番目のケースでは、新しいコミットを作成するのではなく、現在チェックアウトされている ref を更新して、 が指しているのと同じコミットを指しorigin/master
ます。(これは、早送りマージと呼ばれます。コマンドライン フラグを介してマージする場合、git は、これを常に実行するか、まったく実行しないように指示できます)。
これは、ユーザー向けgit commit
の高レベル ( git-parlance のporcelain ) コマンドです。
呼び出しはコミットgit merge master/original
を試みて解決master/original
しますが、これはほぼ確実に (意図的に何かを行っていない限り)と同じにはなりませんorigin/master
。master
という名前のブランチを持つ名前付きのリモートがある場合original
、それを 2 番目の親として持つ新しいコミットが作成されます。
git help rev-parse
git が参照名やその他の表記法をコミットに解決しようとする方法を解読するのに役立つ場合があります。
これが行うことは、origin/master と呼ばれるブランチを現在のブランチにマージすることです。順序は非常に重要です。originという単語は、リポジトリのクローンを作成した場所、つまりリポジトリの起点を意味します。master という単語は単なるブランチ名ですが、 masterは通常、メイン ブランチ、または他のシステムで呼ばれているトランクブランチとして使用されます。 .
開発の状態によっては、Merge でコミットが必要になる場合があります。履歴が元の履歴から分岐していない場合は、早送りと呼ばれるものを実行できます。実行する必要があるのは、新しい履歴を自分の履歴の上に置くことだけです。開発がオリジンから分岐した場合、競合なしでマージを実行できる場合、マージは完了し、マージと 2 つの親を指定するために新しいコミットが HEAD に記録されます。
さらに、競合が原因でマージを実行できない場合は、競合が存在するという事実を反映するように作業コピーが更新され、競合を修正するときに手動でマージを記録するコミットを行います。