首页 > 解决方案 > Git rebase 冲突:许多文件在本地删除,并在远程修改。如何“git rm”所有这些?

问题描述

我正在使用分支功能并重新定位到master和历史记录已经分歧。在功能中,数十个文件已被删除,同时在master上进行了修改。我确定我不再需要这些文件了,所以重新设置基准,保留功能

git rebase -Xtheirs master

它接受我对feature所做的所有更改,但仍然会为已在feature上删除的master修改文件留下冲突,报告:

CONFLICT (modify/delete): some/file1 deleted in HEAD~3 and modified in master. Version master of some/file1 left in tree.

Unmerged paths:
  (use "git reset HEAD <file>..." to unstage)
  (use "git add/rm <file>..." as appropriate to mark resolution)

        deleted by them: some/path/file1
        deleted by them: other/path/file2
        deleted by them: another/path/file3
        ...

他们有无数。我必须为git rm some/path/file1他们每个人奔跑。有没有一种简单的方法可以列出所有被他们删除的文件并将它们git rm自动传递给他们?

更新: 如果您想尝试一下,这里有一个非常小的示例 GitHub 存储库,适用于这种情况。克隆和结帐功能,然后尝试重新定位到 master。

git clone https://github.com/chhh/git-rebase-conflict-resolution
git checkout feature
git rebase -Xtheirs master

标签: gitrebasemerge-conflict-resolutiongit-merge-conflict

解决方案


如果您唯一的冲突是“被他们删除”的未合并路径,我认为只会git add -u解决这种情况。


推荐阅读