修复冲突后git rebase不会继续

时间:2012-02-13 04:31:38

标签: git git-rebase

我在分支上运行git rebase origin/[branch],这是在开发期间将多个本地分支合并在一起的结果。正如所料,我遇到了一些冲突并开始修复它们。前几个很好。 Git列出了文件,我清理了它们,为每个文件做了相应的git add [file],然后做了git rebase --continue并且就此进行了。

但是现在我已经找到了一个冲突的补丁并且已经清理干净,但由于某些原因我无法继续。我已经清理了文件并且所有文件都已上演但是当我git rebase --continue时,我得到了:

$ git rebase --continue
You must edit all merge conflicts and then
mark them as resolved using git add

我知道这个提交的事实会删除一个稍后重新添加和修改的文件。但是当我git status时,我看到的只有:

$ git status
# Not currently on any branch.
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
# modified: [file 1]
# modified: [file 2]
# modified: [file 3]
#

未显示已删除的文件。

因此没有文件需要修改,但是git坚持认为我还有其他事情要做,然后再继续我的路上。

2 个答案:

答案 0 :(得分:4)

想出这个问题并把它放在这里以防万一其他人遇到它:

我注意到我认为在此提交中删除的文件仍在文件系统上,并且仍被git跟踪。所以我对其进行了git rm [file]并收到以下消息:

$ git rm [file one]
[file two]: needs merge
rm '[file one]'

当我检查[file two]时,确定它仍处于冲突状态并需要修复。在修复它并进行分期后,我能够git rebase --continue。我仍然不确定为什么删除的文件没有显示为已删除或为什么此文件在执行git status时未显示为需要修复。

答案 1 :(得分:0)

您可以尝试git ls-files -u获取git认为未合并的文件列表。