git-mergetool
通常、競合が解決された後、ファイルを自動的にステージングします。手動で実行する必要はありませんgit-add
。
ただし、さまざまなツールを使用するために、変更日git-mergetool
を確認して、ファイルが更新されていることを確認しようとします(check_unchanged()を参照)。ファイルが変更されている場合は、mergetoolからの戻りコードをチェックします。
一部のmergetoolsは正しい終了コードを返さない場合があります(マージが成功した場合は0)。そのため、mergetool.<tool>.trustExitCode
これが信頼できない場合に備えて、gitは構成オプションも提供します。これがに設定されている場合false
、gitは常にマージが成功したかどうかを尋ねます。
要約すれば:
- 変更が必要ない場合でも、mergetoolはマージ後にファイルをディスクに保存する必要があります(マージの競合ではないため、これは不可能です)。
- mergetoolの終了コードが信頼できない場合は、
trustExitCode
オプションをfalseに設定できます。
実際には、gitがネイティブにサポートするようになったマージユーティリティの1つを使用することをお勧めします。これらのリストはここで入手できます。これらのツールのいずれかを使用する場合は、それを使用するようにgitを構成する以外に、追加のセットアップは必要ありません。例:
git config --global merge.tool p4merge
注:これらのツールのセットアップに関する古い記事がWeb上にたくさんある場合があります。たとえば、私のお気に入りのmergetoolであるp4mergeは、最初はgitでネイティブにサポートされておらず、手動で構成する必要がありました。これは、最近のバージョンのgitでは不要になりました。