2014-01-07 129 views
0

我是git的新手,我想开始做'正确的'事情。我很喜欢这个流程:Git rebase flow

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?

我想:

  • 避免史诗合并
  • 避免支地狱(*)
  • 避免快进(见提交内容分行gruped)
  • 备份/分享我的地方分支机构( *)

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

回答

1

重新发布已发布的提交is strongly discouraged。简而言之,当您重新绑定时,您将创建具有不同ID(散列)的完全新的提交对象。

如果您希望在工作时发布功能分支,那么在完成merge时要好得多,而不是重新绑定。