gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 13:10:24 24 4
gpt4 key购买 nike

有没有办法在将文件送入三向 merge 工具之前完全关闭 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

本地修订版包含:

X1
A
X2

REMOTE 版本包含:

X1
B
X2

哪里X1X2是3个文件之间一些共同的代码行。

现在,kdiff3 在这里发出冲突信号。

如果我抓取文件,将它们复制到一个单独的文件夹并删除 < 之间的所有内容和 > , kdiff3 merge 文件的方式更好,有时是自动的。

根据我在 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

版本

我使用:

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

当我通过 Git Extensions 和通过 git mergetool 运行 merge 时,问题都存在

更新 2

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

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

最佳答案

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

例子.gitattributes

* merge=union

除了指定所有文件都没有 merge 选项之外,我们还可以对选定数量的文件执行此操作,例如:

*.java merge=union
src/generated/* merge=union

这些行调整 java 文件和 src/generated 文件夹中所有文件的 merge 选项。

关于git - 有没有办法关闭 git 冲突解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15615813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com