Hig*_*ife 4 git version-control git-merge
我正在尝试合并两个存储库,并且只有几个“真正的”冲突,但是大约有 70 个“两者都添加”的文件冲突。然而,当查看 git diff 时,它只显示文件模式已更改。
批量接受当前文件模式并忽略传入文件模式的最佳方法是什么?
一点背景:这两个仓库代码相同,但有一个是通过SVN跟踪的,所以没有历史记录。我现在使用 git-svn 来跟踪它并将它与当前的 git 存储库合并。
合并时传入的冲突显示为: CONFLICT (add/add): Merge conflict in framework/file/name.php Automatic merge failed; 修复冲突,然后提交结果。
Git 状态显示:都添加了:framework/file/name.php
如果我使用 git mergetool,它不会显示任何冲突。使用这种方法浏览每个文件需要很长时间。
所以在尝试了所有的各种合并策略,并确定我需要从存储库中获取文件模式,丢弃本地文件模式后,我想出的最佳解决方案是使用:git checkout --theirs <remote/branch> -- path用于文件模式
更改,并用于git mergetool代码冲突解析度。使用 git diff,我可以看到哪些文件是文件模式更改,哪些是文件代码更改。
git merge使用--recursive -Xours作为默认的合并策略。
有一个 git 配置变量:core.fileMode 可以忽略文件模式更改。请参阅:如何让 Git 忽略文件模式 (chmod) 更改?