web-dev-qa-db-ja.com

TortoiseGitでは、どれがMERGE_HEADで、どちらがHEADですか?

これは簡単な質問ですが、gitはラベルと混同しており、答えを見つけることができませんでした。

ローカルに変更があり、最新のリモートリポジトリをローカルリポジトリにマージしたい場合は、ローカルコミットを実行してからgit pullを実行します。

マージの競合が表示されたら、MERGE_HEADを使用して競合を解決し、HEADを使用して競合を解決するオプションがあります

リモートリポジトリとローカルリポジトリのどちらですか。

ありがとうございました

11
Mi Po

それらは両方ローカルです(これは重要ですが、あまり役に立ちません:-))。

HEAD現在のブランチであり、これは今チェックアウトしたブランチを意味します。 git mergeの場合、これは開始時にチェックアウトしたものです。

MERGE_HEADその他のコミットです。これはGitにマージするように指示したコミットのハッシュIDを意味します。つまり、git merge Origin/masterOrigin/masterをローカルコミットハッシュIDに解決してから、そのコミットをマージし、MERGE_HEADにはそのコミットのハッシュIDが含まれます。

他のコミットのより良い用語はotherまたは--theirsであり、Gitはこれらの用語を使用することがありますが、Gitの他のビットはremoteという用語を使用します--theirsコミットを参照してください。

9
torek

私は同じ問題を探している間にこのスレッドに出くわしました。 TortoiseGitのマージツールとしてWinMergeを使用していますが、競合を解決すると3つのペインが表示されます:MERGE_HEADは左側、Baseは中央、HEADは右側です。

MERGE_HEADはマージしようとしているコミット/ブランチ、HEADはマージしようとしているコミット/ブランチ、Baseは解決するために編集する必要があるマージ結果です紛争。

したがって、中央のペインのコードBaseを編集して保存し、コミットする必要があります。

0
A. Genedy