让分支与主人保持同步
我有一个远程存储库,我已经拉出并分支。 我希望通过对master进行更改来保持新分支的最新状态。 我正在考虑下面的工作流程,这是否有意义,还是有更好的方法来做到这一点?
初始分支和结帐:
git checkout master
git pull
git checkout -b my_branch
在my_branch
做一些工作,然后定期:
git checkout master
git pull
git checkout my_branch
git merge master --no-ff
根据需要重复步骤2,定期按下远程my_branch
。
然后当准备好合并时:
git checkout master
git merge my_branch --no-ff
好吧?
你可以简化你的命令:
1。
git fetch
git checkout -b my_branch origin/master
2。
git fetch
git merge origin/master
git fetch
更新你的远程分支,当你不打算在这个分支上工作时,通常没有必要拥有一个分支的本地副本。
你可以在设置git config --global merge.ff false
后省略--no-ff
。
git help config
说:
merge.ff
By default, Git does not create an extra merge commit when merging
a commit that is a descendant of the current commit. Instead, the
tip of the current branch is fast-forwarded. When set to false,
this variable tells Git to create an extra merge commit in such a
case (equivalent to giving the --no-ff option from the command
line). When set to only, only such fast-forward merges are allowed
(equivalent to giving the --ff-only option from the command line).
请注意, git pull
只是git fetch
和git merge
的组合。
通常你只想要git pull --rebase
,它本质上就是git fetch
和git rebase
,并创建一个更清晰的历史记录。
你的“周期性推动”有什么理由吗? 如果没有其他人在同一个分支上工作,那完全没问题,只需要在完成所有工作后推动。
我会建议使用rebase工作流程。 因此,而不是使用git pull
你应该使用git pull --rebase
。
我会做同样的功能分支。 所以,而不是做一个git merge master --no-ff
我会使用git rebase master
。 但是,如果功能分支旨在在开发过程中与同事共享,则最好将主分支定期合并到功能分支中。
但说实话,我在一个小团队中工作,如果我们需要一起工作在一个功能分支上,并且我们需要让它与主人保持同步,那么我们只需暂停我们的工作一段时间(并清楚地告知过程) ,在master和force上重新绑定特性分支。 但是,对于更大的团队来说,这并不成比例。 但是,我发现使用在主服务器上重新绑定的功能部件而不必处理来自主服务器的合并更方便。
请务必阅读。
Git工作流和rebase vs合并问题
链接地址: http://www.djcxy.com/p/48947.html