好吧,我以为这是一个简单的git场景,我错过了什么?
我有一个master
分支和一个feature
分支。我在master
上做了一些工作,在feature
上做了一些工作,然后在master
上做了更多的工作。我最终得到了这样的东西(字典顺序意味着提交的顺序):
A--B--C------F--G (master)\D--E (feature)
我对git push origin master
保持远程master
更新没有问题,也没有git push origin feature
(在feature
时)为我的feature
工作维护远程备份。到目前为止,我们很好。
但是现在我想在master上的F--G
提交之上重新设置feature
,所以我git checkout feature
和git rebase master
。仍然很好。现在我们有:
A--B--C------F--G (master)\D'--E' (feature)
问题:在我想备份新的重新基于的feature
分支时使用git push origin feature
,推送被拒绝,因为树由于重新基于而发生了变化。这只能用git push --force origin feature
来解决。
我讨厌在不确定自己是否需要的情况下使用--force
。那么,我需要它吗?重新设置必然是否意味着下一个push
应该是--force
ful?
此功能分支不与任何其他开发人员共享,因此我对强制推送没有问题事实上,我不会丢失任何数据,问题更具概念性。