如何仅使用文件模式更改来批量解析Git Conflicts?

时间:2011-07-26 19:56:55

标签: git version-control git-merge

我正在尝试合并两个存储库,并且只有几个“真正的”冲突,但是大约有70个“两个已添加”的文件冲突。但是,在查看git diff时,它只显示文件模式已更改。

批量接受当前文件模式并忽略传入文件模式的最佳方法是什么?

一点背景: 这两个存储库具有相同的代码,但是已经通过SVN跟踪了一个,因此没有历史记录。我正在使用git-svn来跟踪它并将其与当前的git存储库合并。

合并时的传入冲突显示为: CONFLICT(添加/添加):在framework / file / name.php中合并冲突 自动合并失败;修复冲突,然后提交结果。

Git状态显示: 两者都添加了:framework / file / name.php

如果我使用git mergetool,它不会显示任何冲突。使用此方法浏览每个文件需要很长时间。

2 个答案:

答案 0 :(得分:4)

因此,在尝试了所有各种合并策略,并确定我需要从存储库中取出文件模式,丢弃本地文件模式后,我提出的最佳解决方案是使用: 文件模式的git checkout --theirs <remote/branch> -- path更改,并使用git mergetool进行代码冲突解决。 使用git diff,我可以看到哪些文件是文件模式更改,哪些是文件代码更改。 git merge使用--recursive -Xours作为默认合并策略。

有一个git配置变量:core.fileMode可以忽略文件模式的更改。 请参阅:How do I make Git ignore file mode (chmod) changes?

答案 1 :(得分:1)

git merge -Xours branchToMergeIn怎么样?它将合并两者并优先考虑您当前的分支。从未尝试过模式更改,但 应该这样做......

使用jeffromi的合并策略编辑。