ファイルを 3 ウェイ マージ ツールにフィードする前に、競合を解決しようとする git の試みを完全にオフにする方法はありますか?
私はそれらの行を意味します:
<<<<<<< Temporary merge branch 1
...
=======
...
>>>>>>> Temporary merge branch 2
それらとブランチの変更をベースファイルに追加してからkdiff3にフィードしますが、後者は完全に狂って奇妙な競合を示します。
基本リビジョンをそのままにしておきたいだけです。
これまでのところ、オプションしか見つかりませんでした
merge.conflictstyle
しかし、これらの行をオフにするオプションはないようです。
行を削除するプリプロセッサを書く以外に方法はありますか?
アップデート
ここで嫌いなことを説明します。
問題は、git が kdiff3 を起動すると、BASE リビジョンに次のような行が含まれることです。
X1
<<<<<<< Temporary merge branch 1
A
=======
B
>>>>>>> Temporary merge branch 2
X2
LOCAL リビジョンには以下が含まれます。
X1
A
X2
REMOTE リビジョンには以下が含まれます。
X1
B
X2
ここでX1
、 とX2
は、3 つのファイル間で共通のコード行です。
ここで、kdiff3 は競合を通知します。
ファイルを取得して別のフォルダーにコピーし、 と の間のすべてを削除する<
と>
、kdiff3 はファイルをより適切に (場合によっては自動的に) マージします。
http://www.gitguys.com/topics/merging-with-a-gui/で確認できることから、実際には BASE リビジョンの行を表示すべきではないようです。しかし、そうです。どうすれば修正できますか?
Git 構成
git config -l
これを与える:
core.symlinks=false
core.autocrlf=false
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
pack.packsizelimit=2g
help.format=html
http.sslcainfo=/bin/curl-ca-bundle.crt
sendemail.smtpserver=/bin/msmtp.exe
diff.astextplain.textconv=astextplain
rebase.autosquash=true
user.name=Pavel Gatilov
user.email=********
merge.tool=kdiff3
mergetool.kdiff3.path=C:/Program Files (x86)/KDiff3/kdiff3.exe
diff.guitool=kdiff3
difftool.kdiff3.path=C:/Program Files (x86)/KDiff3/kdiff3.exe
difftool.kdiff3.cmd="C:/Program Files (x86)/KDiff3/kdiff3.exe" "$LOCAL" "$REMOTE"
core.editor="C:/Program Files (x86)/GitExtensions/GitExtensions.exe" fileeditor
core.autocrlf=false
credential.helper=!"C:/Program Files (x86)/GitExtensions/GitCredentialWinStore/git-credential-winstore.exe"
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
core.hidedotfiles=dotGitOnly
core.safecrlf=true
remote.origin.url=********
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.develop.remote=origin
branch.develop.merge=refs/heads/develop
gui.wmstate=normal
gui.geometry=887x427+175+175 171 192
branch.8480-il.remote=origin
branch.8480-il.merge=refs/heads/8480-il
branch.branch-9354.remote=origin
branch.branch-9354.merge=refs/heads/branch-9354
バージョン
私が使う:
ツールのバージョン ------------------------ msysgit 1.8.1.msysgit.1 Git 拡張機能 2.44 kdiff3 0.9.97
この問題は、Git 拡張機能を介してマージを実行するときと、git mergetool
更新 2
ファイルの不要な部分を削除するために kdiff3 プリプロセッサ コマンドを構成しようとしましたが、行ごとに動作するように見えるため、問題を解決できません。
プリプロセッサ ラッパーを作成することもできますが、まだやりたくありません。