我是git的新手,我想开始“正确”做事。我非常喜欢这个流程:
git checkout -b featurebranch
git commit -m "some changes" // manytimes
*
git pull // update master to origin's head
git checkout featurebranch
git rebase master // rebase my feature branch
git checkout master
git merge featurebranch --no-ff // keep branch and merge to master
但我遇到的问题是我希望push
在*
所在的地方发生变化,这会导致我的featurebranch
完成一些并发症。简单地说,我不能推动重新分支因为“它落后......”。删除远程origin/featurebranch
或git push -f
我认为是解决方法。我的流程或仅仅是对git的理解是否有问题?
我想:
我可以通过忘记其中一个来解决这个问题。有必要吗?
答案 0 :(得分:1)
重新发布已发布的提交is strongly discouraged。简而言之,当你进行rebase时,你创建了具有不同ID(散列)的全新提交对象。
如果您希望在工作时发布功能分支,那么当您完成而不是重新定位时,merge
会更好。