git rebase之后无法推送

时间:2014-12-14 07:40:00

标签: git github git-rebase

我是git的新手,我想使用git rebase功能来合并我的几个提交。但是,在运行rebase命令并合并提交之后,我无法推送更改。

  

On branch master你的分支和'origin / master'有分歧,并且   每个都有1个和2个不同的提交。 (使用“git pull”   将远程分支合并到您的分支中)

     

无需提交,工作目录清理

以下是我关注的流程。

  1. 以下是 git log --pretty = oneline 命令的输出 7014f2b4f01c40868f488b0cc28742d179b6c404第三次提交 64504dfab9f37250760a0862199e0291fc1bce6e第二次提交 e4869ace429dc8f60ec1862bbfb19330eefbfe6a首次提交

  2. 第二个命令 - git rebase -i HEAD~2
    选择 64504df第二次提交
    壁球 7014f2b第三次提交 我在完成rebase之后得到了以下输出,并且在此之后无法推动更改
    [分离的HEAD 35b14b0]第二次提交 1个文件已更改,3个插入(+),1个删除( - ) 成功改组并更新了refs / heads / master。

  3. 输出git log --oneline --graph --decorate HEAD ... @ {u}

    * 454f5f4 (HEAD, master) Second Commit 
    * 7014f2b (origin/master) Third Commit 
    * 64504df Second Commit 
    

    请注意,所有更改也会推送到github。

1 个答案:

答案 0 :(得分:0)

看起来您已经将两个更改推送到原点。

现在,rebase会抛弃最后两次提交,并通过一次组合提交替换它们。

因此,分支机构“转移”了。远程存储库包含两个提交,其中本地存储库包含单个提交。通常,如果您只是添加新提交,则只能推送。因此,git抱怨。

一般规则:从不重新提交您已推送的提交。

如果您只想推送更改,请使用git pullgit pull --rebase。这将在远程更改之上合并或修改本地更改。之后你应该能够毫无问题地推进。