Git rebase流

时间:2014-01-07 19:15:29

标签: git version-control workflow

我是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/featurebranchgit push -f我认为是解决方法。我的流程或仅仅是对git的理解是否有问题?

我想:

  • 避免史诗合并
  • 避免分支地狱(*)
  • 避免快进(参见分支机构提交的提交)
  • 备份/分享我的本地分支机构(*)

我可以通过忘记其中一个来解决这个问题。有必要吗?

1 个答案:

答案 0 :(得分:1)

重新发布已发布的提交is strongly discouraged。简而言之,当你进行rebase时,你创建了具有不同ID(散列)的全新提交对象。

如果您希望在工作时发布功能分支,那么当您完成而不是重新定位时,merge会更好。