好吧,我以为这是一个简单的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?
此功能分支不与任何其他开发人员共享,因此我对强制推送没有问题事实上,我不会丢失任何数据,问题更具概念性。