git rebase后推送拒绝

时间:2015-01-26 09:18:27

标签: git

我正在处理名为auth的功能分支,该分支从master分支分支出来:

C1 (master)
 \ 
  C2-C3 (auth)

在我C3提交之后,我将auth分支推送到远程进行备份。然后在远程更新master分支,历史记录如下:

C1-C4 (master)
 \ 
  C2-C3 (auth)

我将auth分支重新定位到更新的master分支,现在的历史记录如下:

C1-C4 (master)
    \
     C2-C3 (auth)

然后我在auth分支上进行了更多更改,将C5提交并推送auth分支到远程,推送被拒绝,并显示消息是我在本地没有的遥控器更新。但我知道没有其他人在远程推进auth分支。那为什么会这样呢?

这个article只为这种行为提供了一个简单的解释:

  

请注意:如果已将重新分支的分支推送到远程(用于备份)   例如,你需要强制下一次推动它   -f选项,因为您刚刚用新的替换了它的提交历史记录   one.`

1 个答案:

答案 0 :(得分:2)

auth分支的rebase has changed the history

这就是你需要强制推送的原因,只有当你是唯一一个在这个分支上工作的人时才可以 如果没有,最好是:

如:

C1-----C4      (master)
 \      \
  C2-C3--M--C5 (auth)