Git工作流

Git是当今最流行的开源版本控制系统,使用git的每个团队应该也有固定的工作流。今天就介绍一个现有普遍使用的工作流git-flow。 分支(branch) 如上图一般分支有*master、develop、feature/xxx、release/xxx、hotfixes*,下面一一介绍。 长期分支 长期分支是跟着产品长期存在的不会删除。 *master*只能用来包括产品代码,不要在这上面做任何的改动。 *develop开发主分支,所有新功能的分支从这里checkout,所以这是开发的基础分支。该分支也是汇集所有开发新功能后最后merge到master*的分支。 临时分支 临时分支只用来开发新功能、修复bug和发布产品用最后删除。 *feature/xxx开发新功能的分支从develop分支checkout每个功能创建一个分支是一个良好的习惯。开发测试完后merge到develop*分支进行更全面的测试。 *release/xxx产品预发布分支,一般以版本号为分支名,需要合并到master*分支发布。 *hotfixes紧急修复bug的分支基于master分支,修复完后一定要合并到master分支和develop*分支。 Git-flow工作流程 基本步骤 开发人员首先从*develop*分支checkout -b feature/xxx一个待开发的分支,开发和测试。 当开发和测试都完成后将*feature/xxx合并到develop并删除清理。当然其中有新功能时可以再新建一个feature*分支并最后合并到开发分支。 终于等到release了,现在开发分支汇集了所有新开发的功能并无重大bug,我们从*develop分支checkout一个release/v1.0.0的分支进行更加全面的测试准备发布,有bug就在release分支修复,正式发布就是把这个release分支合并到master分支打上tag。当然不要忘记将发布分支合并到develop分支以保持和master*代码同步一致。 可能发布后有紧急的bug需要修复那就从*master分支checkout一个hotfixes/missing-link分支修复bug并合并到master和develop*最后删除。 总结一下 以上就是Git-flow方案的所有流程,优点是分支清晰各干各的看名字就知道,最后只留下*master和develop*分枝。缺点当然是步骤比较繁琐咯,开发要新建很多分支然后切换和删除。我们可以还有很多方案选择GitHub flow、GitLab flow等,或者理解熟练了之后自创一套也是可以的。 GitHub协同工作 身为一个开发者一定想为开源项目贡献自己的代码,下面是基本步骤可做参考。也可以作为团队协作的基本流程。 Fork到自己帐号下并Clone到本地 git remote add upstream https://github.com/... 添加上游项目地址(源项目地址)以便更新到最新的代码,添加完可用git remote -v查看除了origin应该还有upstream远程地址 git pull upstream master从刚才添加的upstream拉取最新代码 git checkout -b feature/some-feature 新建一个你要添加新功能的分支,开发就在这上面进行 git add . && git commit -m 'some feature add'测试通过后提交代码 git checkout master && git pull upstream master这主要是从源仓库拉取最新代码,在你开发期间,如果源项目有改动提交pull就能拉取下来 git checkout feature/some-feature && git rebase master 然后执行一次变基更新代码 git push origin feature/some-feature推送你开发完并更新到最新的分支到GitHub 去自己GitHub帐号下 pull request等review合并 一具话就是先在本地新建一个分支开发最后提交这个分支发PR,需要注意的是提交到远程的时候记得先pull更新代码然后rebase使分支清晰可读。...

November 21, 2017 · 1 min · 82 words · Fython