2017-08-04 116 views
0

我衍合多次提交的一个分支上的上游分支。我阻止某种在那里,我不能继续我的分支,其余所有提交的失败,所以我需要一种方法来继续git的复位时好像不工作。如何进行时GIT中变基--continue是真的真的阻止空提交

正如我说我重订一个分支。我一直都在这样重新设计,我并不感到惊讶的是,有一两个承诺有冲突,可以解决为空的承诺。但我不知道哪些提交,直到我经历冲突解决步骤(编辑冲突的文件并添加结果文件)。所以这里发生了什么抽象的版本:

$ git checkout working_branch 
$ git rebase -i upstream 
[Here it is reported that file.c has conflicts. I edit it. 
    The resulting diff is empty.] 
$ git add file.c 
$ git rebase --continue 
The previous cherry-pick is now empty, possibly due to conflict resolution. 
If you wish to commit it anyway, use: 

    git commit --allow-empty 

Otherwise, please use 'git reset' 
rebase in progress; onto xxxsha 

但是在这一点上git reset是没有帮助的,我结束了完全相同的状态。我不希望有一个空的提交。我曾经遇到过这个过程中潜在的空洞承诺,我一直很乐意让这个承诺消失。

我来到在几乎相同的确切的结果发生的问题git cherry-pick not working,但樱桃采摘一个承诺,不重订一个分支。另一位询问者很高兴继续前进,而不是挑选樱桃。逐步推测rebase使用樱桃挑选每个提交,我有几个提交步骤。在我的情况下,这发生在我的分支的第一次提交上,我需要一个真正的解决方案来继续。

回答

0

外卖是在摘要行仔细看。答案原来是git rebase --continue如果您发现的它提交的摘要行说不能应用,实际上是下一个承诺。我被屏幕上的文本与命令经常显示的通常的空提交消息的相似程度相提并论。但它是一种不同的信息。它事实上一直在继续,并正在进行下一次提交,该提交自动解析为空。该文本包含分支的下一次提交的摘要行,而不是来自我刚解决的提交的摘要行。所以当空的提交状态以这种方式出现的时候,可以继续下去而不用再做了。

1

大功告成之后解决冲突,并发现你留下了一个空的承诺,你可以跳过它:

$ git rebase --skip 
+0

我认为这也适用于通常的情况,但不是说就难倒我的情况。 –