团队协作中的 Github flow 工作流程
作为一名开发人员 Git 常用命令每天都在使用,大家肯定信手拈来,但是在团队协作中 Git 的使用姿势和个人开发还是有很多不一样的地方,对于技术团队,期望大家使用规范的 Git 操作流程,规范的 Commit Message,规范的代码风格。这样才能提高团队开发相率和项目的可维护性。今天主要为大家介绍一套基于 Github flow 的 Git 操作流程。
fork
首先,多人协作的情况,我们通常会 fork团队项目主仓库到自己的托管空间下,然后 Clone 到本地进行开发,假设团队项目的托管地址为:
https://github.com/fe/github-flow
此时主仓库项目下的固定分支两个,分别是 master,develop。
Clone 到本地:
git clone git@github.com:fe/github-flow.git
假设上面主仓库 fork 之后的项目地址为:
https://github.com/xxx/github-flow
Fork 出来的仓库完全属于你自己,你可以任意修改该仓库的代码及配置,但是除非你向项目主仓库提交 pull request,并且被接受通过,你才可以将你fork 仓库修改的代码合并到主仓库,否则不会对主仓库产生任何影响。
此时可以在控制台输入 git remote -v
命令查看当前远端仓库的地址,输出如下:
origin git@github.com:xxx/github-flow.git (fetch)
origin git@github.com:xxx/github-flow.git (push)
可以看出该地址的远端(origin)为刚刚 fork 到自己的托管空间下项目地址。
接下来我们可以设置一个名字为 upstream 的上游地址,也就是我们项目主仓库的地址
在命令行执行:
git remote add upstream git@github.com:fe/github-flow.git`
添加一个别名为upstream(上游)的地址,指向之前 fork 的原项目仓库地址。
再次执行 git remote -v
控制台输出如下:
origin git@github.com:xxx/github-flow.git (fetch)
origin git@github.com:xxx/github-flow.git (push)
upstream git@github.com:fe/github-flow.git (fetch)
upstream git@github.com:fe/github-flow.git (push)
设置上游地址的目的是当我们通过 pull request 的形式提到主仓库之后,本地仓库需要同步主仓库的代码,并及时更新到 origin(远端)仓库,保证自己托管空间下本地和远端仓库的代码都是最新的。
之后运行下面几条命令,就可以保持本地仓库与上游(upstream)仓库同步了
git fetch upstream
git checkout master
git merge upstream/master
接下来就是本地仓库推送到远端(origin)仓库:
git push origin master
这个时候我们可以在本地进行开发了,通常我们规定:
- 开发新功能要从 develop 分支上新建一个 feat/[name-desc] 临时分支
- bug 修复 从 master 分支新建一个 hotfix/[name-desc] 临时分支
对于Github flow 流程中,master 分支包含稳定的、发布到生产的代码,develop 分支包含迭代最新的code review 通过并自动化测试通过的代码。
这里需要注意:不允许任何开发人员把未经测试或者没有 Code review通过的代码直接提交到 master、d