如何解决无法将.gitattributes配置为对合并有任何影响
已配置merge
的{{1}}驱动程序:
.gitattributes
以下是仓库的git config --global merge.ours.driver true
$git config -l
push.default=current
pull.default=current
merge.ours.driver=true
文件(在gitattributes
下)中的内容:
.git/info/attributes
$cat .git/info/attributes
keys_manager/* merge=ours
js/README.md merge=theirs
目录已在第一个分支(我们的)中删除,并在第二个分支(其分支)中对其进行了更改。已对远端keys_manager
内的文件和两个分支上的keys_manager
进行了更改。
现在让我们对提交进行一次试运行:
js/README.md
结果:
git merge --no-commit --no-ff origin/audiorec
这些不是预期的CONFLICT (modify/delete): keys_manager/init_db.sql deleted in HEAD and modified in
origin/audio-recorder. Version origin/audio-recorder of keys_manager/init_db.sql left in tree.
Auto-merging js/README.md
CONFLICT (content): Merge conflict in js/README.md
Automatic merge Failed; fix conflicts and then commit the result.
影响结果,而是像.gitattributes
不存在一样的原始结果。为什么没有生效?
解决方法
如果发生低级别冲突,则您的合并驱动程序将用于keys_manager/init_db.sql
。但实际上:
CONFLICT (modify/delete): keys_manager/init_db.sql deleted in HEAD and modified in origin/audio-recorder ... [snip]
您遇到了高级或树冲突,而不是低级冲突。即,一侧完全删除了文件,而另一侧修改了文件。标准合并策略始终只是将修改后的文件保留为临时(冲突的)结果,并在发生冲突时停止。如果您要删除文件的最终结果,可以立即删除文件。
与此同时,
Auto-merging js/README.md CONFLICT (content): Merge conflict in js/README.md
是一个低级冲突,因此您的合并驱动程序:
js/README.md merge=theirs
应该已经被调用。您显示了:
merge.ours.driver=true
但是merge.theirs.driver
设置为什么?如果未设置,则忽略使用您自己的驱动程序的说明; Git使用其内置的低级合并驱动程序。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。