我正在尝试 merge 两个存储库,只有几个“真正的”冲突,但有大约 70 个“已添加”的文件冲突。然而,当查看 git diff 时,它只显示文件模式已更改。
批量接受当前文件模式并忽略传入文件模式的最佳方法是什么?
一点背景: 这两个存储库具有相同的代码,但其中一个已通过 SVN 进行跟踪,因此没有历史记录。我现在正在使用 git-svn 来跟踪它并将它与当前的 git 存储库 merge 。
merge 时传入的冲突显示为: CONFLICT (add/add): merge framework/file/name.php 中的冲突 自动 merge 失败;修复冲突,然后提交结果。
Git 状态显示: 都添加了:framework/file/name.php
如果我使用 git mergetool,它不会显示任何冲突。使用此方法遍历每个文件需要很长时间。
最佳答案
因此,在尝试了所有各种 merge 策略并确定我需要从存储库中获取文件模式、丢弃本地文件模式之后,我想出的最佳解决方案是使用:
git checkout --theirs <remote/branch> -- path
用于文件模式更改,并使用 git mergetool
用于代码冲突解决。
使用 git diff,我可以看到哪些文件是文件模式更改,哪些是文件代码更改。
git merge
使用 --recursive -Xours
作为默认的 merge 策略。
有一个git配置变量:core.fileMode可以忽略文件模式的改变。 请参阅:How do I make Git ignore file mode (chmod) changes?
关于git - 如何仅通过更改文件模式来批量解决 Git 冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6835796/