正在重build。 无法提交。 如何进行或停止(中止)?

当我运行:

git status 

我看到这个:

 rebase in progress; onto 9c168a5 You are currently rebasing branch 'master' on '9c168a5'. (all conflicts fixed: run "git rebase --continue") nothing to commit, working directory clean 

当我做:

 ls `git rev-parse --git-dir` | grep rebase || echo no rebase 

我看到:rebase-apply

我不能承诺起源。

 git branch 

显示:

 * (no branch, rebasing master) develop master 

我卡住了。 我不知道该怎么办? 这是否真的需要这么长时间来重组? git rebase --continue不会做任何事情。 我没有任何Git身份..我只是在等待rebase。 我能做什么?

UDATE:这是git rebase –continue的输出

 Applying: no message No changes - did you forget to use 'git add'? If there is nothing left to stage, chances are that something else already introduced the same changes; you might want to skip this patch. When you have resolved this problem, run "git rebase --continue". If you prefer to skip this patch, run "git rebase --skip" instead. To check out the original branch and stop rebasing, run "git rebase --abort". 

git add。 什么都没有

Rebase不会在后台发生。 “rebase进展中”意味着你开始了rebase,rebase因为冲突而中断。 你必须恢复rebase( git rebase --continue )或放弃它( git rebase --abort )。

正如来自git rebase --continue的错误消息git rebase --continuebuild议,您要求git应用一个导致空补丁的补丁。 最有可能的是,这意味着这个补丁已经被应用了,你想用git rebase --skip来删除它。

你告诉你的存储库重新绑定 它看起来像你在一个提交(由SHA 9c168a5确定),然后做git rebase mastergit pull --rebase master

您正在将分支主人redirect到该提交。 你可以通过git rebase --abort结束git rebase --abort 。 这会退回到您开始重新贴标之前的状态。

我最近进入这个状态。 在解决了rebase期间的冲突之后,我做了我的修改,而不是运行git rebase --continue 。 这产生了与运行git statusgit rebase --continue命令时看到的相同的消息。 我通过运行git rebase --abort解决这个问题,然后重新运行rebase。 人们也可能跳过rebase,但我不知道什么状态,将离开我。

 $ git rebase --continue Applying: <commit message> No changes - did you forget to use 'git add'? If there is nothing left to stage, chances are that something else already introduced the same changes; you might want to skip this patch. When you have resolved this problem, run "git rebase --continue". If you prefer to skip this patch, run "git rebase --skip" instead. To check out the original branch and stop rebasing, run "git rebase --abort". $ git status rebase in progress; onto 4df0775 You are currently rebasing branch '<local-branch-name>' on '4df0775'. (all conflicts fixed: run "git rebase --continue") nothing to commit, working directory clean 

我将git设置为在git checkout上的autorebase

 # in my ~/.gitconfig file [branch] autosetupmerge = always autosetuprebase = always 

否则,当您在分支之间切换时,它会自动合并,我认为这是默认情况下最糟糕的select。

然而,这有一个副作用,当我切换到一个分支,然后git cherry-pick <commit-id>我每次都有一个冲突结束在这个奇怪的状态。

我实际上必须中止rebase ,但首先我修复冲突, git add /path/to/file的文件(另一个非常奇怪的方式来解决在这种情况下的冲突?!),然后做一个git commit -i /path/to/file 。 现在我可以放弃rebase

 git checkout <other-branch> git cherry-pick <commit-id> ...edit-conflict(s)... git add path/to/file git commit -i path/to/file git rebase --abort git commit . git push --force origin <other-branch> 

第二个git commit . 似乎来自中止。 如果我发现我应该尽快放弃rebase ,我会解决我的问题。

如果您跳过其他提交并且两个分支都不平滑 (两者都缺less来自其他提交的提交),则推送时必须使用--force