我有我的master分支机构和develop分支机构来处理一些变化.我需要从合并更改master为develop,但最终会从一切融合develop成master.我有两个不同的工作流程:
git pull origin master进入develop分支git merge master进入develop分支哪种方法最好,为什么?
Ian*_*sky 346
此工作流程最适合我:
git checkout -b develop
Run Code Online (Sandbox Code Playgroud)
......做一些改变......
...通知大师已更新...
...提交改变以发展......
git checkout master
git pull
Run Code Online (Sandbox Code Playgroud)
......让这些变化重新发展......
git checkout develop
git rebase master
Run Code Online (Sandbox Code Playgroud)
...做出更多改变......
......让他们发展......
......把他们合并成主人......
git checkout master
git pull
git merge develop
Run Code Online (Sandbox Code Playgroud)
小智 102
要小心rebase.如果您与任何人共享您的开发分支,rebase可能会弄乱一切.Rebase仅适用于您自己的本地分支机构.
经验法则,如果您将分支推到原点,请不要使用rebase.相反,使用合并.
div*_*eek 24
这类事情的最佳方法可能就是git rebase.它允许您将更改从master转移到开发分支,但是将所有开发工作"置于"(稍后在提交日志中)来自master的内容.当您的新工作完成后,合并回主人就非常简单了.
如果你不与任何人共享开发分支,那么每次master更新时我都会对它进行重新设置,这样一旦你将开发合并到master中,你将不会在整个历史记录中进行合并提交.这种情况下的工作流程如下:
> git clone git://<remote_repo_path>/ <local_repo>
> cd <local_repo>
> git checkout -b develop
....do a lot of work on develop
....do all the commits
> git pull origin master
> git rebase master develop
Run Code Online (Sandbox Code Playgroud)
以上步骤将确保您的开发分支始终处于主分支的最新更改之上.一旦你完成了开发分支并且它已经重新定位到master上的最新更改,你可以将它合并回来:
> git checkout -b master
> git merge develop
> git branch -d develop
Run Code Online (Sandbox Code Playgroud)