修复冲突后git rebase不再继续
问题描述:
我在分支上运行git rebase origin/[branch]
,这是在开发过程中合并多个本地分支的结果。正如所料,我遇到了一些冲突并开始修复它们。前几个很好。 Git列出了这些文件,我把它们清理干净了,为每个文件都做了合适的git add [file]
,然后做了一个git rebase --continue
,然后就完成了。修复冲突后git rebase不再继续
但现在我已经打了一个补丁,冲突和清理,但我无法继续出于某种原因。我已经清理的文件和所有的人都在上演,但是当我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坚持我仍然需要做其他事情才能继续我的行程。
答
想通这个问题,并把这个位置的情况下,任何人都遇到它:
我注意到,我想辗转于这次提交仍然是文件系统上的文件,正在由混帐还是跟踪。所以,我做了一个git rm [file]
它,并得到了以下消息:
$ git rm [file one]
[file two]: needs merge
rm '[file one]'
当我检查[file two]
果然仍处于冲突状态,需要加以固定。在修理和分期后,我能够git rebase --continue
。我仍然不确定为什么删除的文件没有显示为已删除,或者为什么在执行git status
时未显示此文件需要修复。
答
您可以试试git ls-files -u
以获取git认为未合并的文件列表。