git merge使用以下选项执行a 时:
git merge -X theirs master
偶尔会有冲突的文件:
CONFLICT(修改/删除):在master中删除File_A.java并在HEAD中修改.File_A.java的版本HEAD留在树中.
但是,我希望-X theirs在这些情况下识别该选项,并使用theirs更改的版本,该版本用于删除该文件.
是否有原因导致此类冲突无法自动解决,特别是因为我提供了一个特定的合并策略,建议它应该删除该文件?
此外,如何(如果可能)我可以更新我的merge命令以使用theirs此类冲突的版本?
有点晚了,但可能有用,您可以使用以下方法解决此类冲突:
git merge -X theirs master
git diff --name-only --diff-filter=U | xargs git rm
Run Code Online (Sandbox Code Playgroud)
基本上,这意味着在解决冲突期间“删除所有未合并的文件”。
看起来像策略的theirs选项recursive(这是你实际使用的,见[1])不影响树合并,它仅用于文件内容合并时,只修改两个文件.我真的不知道是否有任何合并命令选项可以做你想要的.您可以尝试创建一个扫描冲突文件(带git status --porcelain)的脚本,然后删除文件(git rm --force <file>)或获取它的远程版本(git checkout --theirs <file>)
[1] https://www.kernel.org/pub/software/scm/git/docs/git-merge.html#_merge_strategies
| 归档时间: |
|
| 查看次数: |
3275 次 |
| 最近记录: |