2012-02-13 102 views
4

我在分支上运行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坚持我仍然需要做其他事情才能继续我的行程。

回答

4

想通这个问题,并把这个位置的情况下,任何人都遇到它:

我注意到,我想辗转于这次提交仍然是文件系统上的文件,正在由混帐还是跟踪。所以,我做了一个git rm [file]它,并得到了以下消息:

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

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

0

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