34

mergetool GUI を常に表示し、自動解決を無効にするにはどうすればよいですか?

マージ中に競合が発生し、mergetool を使用すると、 「マージ解決ツール (kdiff3) を開始するためにリターンを押してください」Enterという質問にヒットした直後に戻り、GUI が表示されず、競合が解決されたように見えることがあります。

現在、 KDiff3をmergetoolとして使用するようにGitを構成していますcodecompareが、mergetoolを指定したときにも発生しました。KDiff3 には、理論的に説明されている動作を引き起こす可能性のあるオプション「競合なしでマージ時に自動保存して終了」があることを知っていますが、私はこのオプションを常に無効/チェック解除しています。

また、Git mergetool gitconfig に直接trustExitCodeオプションがあり、これを true に設定しましたが、false に設定しても GUI が表示されません。

とにかく、誰が自動解決を行うのかわかりません。いくつかの前処理または KDiff3 の Mergetool?

私は Windows で実行しており、Git 拡張機能がインストールされています。

KDiff3に固有の同様の質問がここでも尋ねられました: Kdiff3 は mergetool コマンドで開かない

4

6 に答える 6

3

受け入れられた回答に対するBob esponjaのコメントは、KDiff3 0.9.98を使用して完全に機能しました。

無視するコマンド ライン オプションに追加し--autoます。

Settings | Configure KDiff3... | Integration tab.

KDiff3 は、未解決の競合の数: 0を示す [競合] ダイアログを表示しますが、必要に応じてマージされた状態を検査/変更できます。

独自のバリアントを構成するよりも少し便利です。これは、git mergetool、ソース ツリー、または mergetool を使用するツールのいずれからでも意図したとおりに機能するためです。

于 2020-04-24T18:44:24.060 に答える
0

競合が発生した場合にのみ呼び出される mergetool を構成する代わりに、KDiff3 を使用してマージ ドライバーをセットアップするだけです。

git config merge.kdiff.driver 'kdiff3  "%O" "%A" "%B" -o "%A" --L1 "Nearest Common ancestor"  -L2 "Working Copy" --L3 "Version from Other Branch"'

を追加することで、このドライバーをグローバルにすることができます--global。ただし、リポジトリに .gitattribute を追加する必要があります。

*  merge=kdiff
于 2016-05-20T16:01:18.610 に答える