我正在处理名为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.`
答案 0 :(得分:2)
auth
分支的rebase has changed the history。
这就是你需要强制推送的原因,只有当你是唯一一个在这个分支上工作的人时才可以 如果没有,最好是:
auth
branch to its state before the rebase master
合并到其中C5
如:
C1-----C4 (master)
\ \
C2-C3--M--C5 (auth)