有没有办法关闭git冲突解决方案?

Pav*_*lov 6 git

有没有办法在将文件输入3向合并工具之前完全关闭git尝试解决冲突?

我的意思是那些线:

<<<<<<< Temporary merge branch 1
...
=======
...
>>>>>>> Temporary merge branch 2
Run Code Online (Sandbox Code Playgroud)

它将它们和分支更改添加到基本文件中,然后将其提供给kdiff3,后者完全疯了,显示出奇怪的冲突.

我想简单地修改基本修订版.

到目前为止,我只找到了选项

merge.conflictstyle
Run Code Online (Sandbox Code Playgroud)

但它似乎没有选择关闭这些线.

除了编写一个会剥离线条的预处理器之外,还有什么方法吗?

UPDATE

我会在这里解释一下我不喜欢的东西.

问题是,当git启动kdiff3时,BASE修订版包含类似的行

X1
<<<<<<< Temporary merge branch 1
A
=======
B
>>>>>>> Temporary merge branch 2
X2
Run Code Online (Sandbox Code Playgroud)

LOCAL修订版包含:

X1
A
X2
Run Code Online (Sandbox Code Playgroud)

REMOTE版本包含:

X1
B
X2
Run Code Online (Sandbox Code Playgroud)

where X1X2是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
Run Code Online (Sandbox Code Playgroud)

版本

我用:

Tool             Version
------------------------
msysgit          1.8.1.msysgit.1
Git Extensions   2.44
kdiff3           0.9.97

当我通过Git Extensions和via运行合并时,问题就存在了 git mergetool

更新2

我已经尝试配置kdiff3预处理器命令来删除不需要的文件部分,但它似乎在每行的基础上工作,所以它无法解决问题.

我可以写一个预处理器包装器,但我不想这样做.

Fer*_*big 6

您可以在.gitattributes中设置标志来配置gits行为,转换git冲突解决方案,我们可以使用该merge=union标志来执行此操作.

示例.gitattributes

* merge=union
Run Code Online (Sandbox Code Playgroud)

我们也可以为选择性数量的文件执行此操作,而不是指定所有文件都没有合并选项,例如:

*.java merge=union
src/generated/* merge=union
Run Code Online (Sandbox Code Playgroud)

这些行调整java文件的合并选项,以及src/generated文件夹中的所有文件.


Phi*_*ley 1

这不是将配置变量设置mergetool.<tool>.cmd为根本没有初始/默认合并的情况吗?

在合并发生使用(手册上是这么说git merge-tool的)