Git开发大致流程图:
具体流程: 首先一个从仓库的main分支,然后从main分支中拉一个功能分支feature/xxx,在多人开发这个功能的时候拉去自己的个人分支比如:xxx/xxx 。然后每天开发完个人分支后压缩commit,并提一个cr到功能分支,cr完毕后就会自动删除这个个人分支,第二天再次开发时在拉取相对应的个人分支,在发布当天然后在把功能分支合并到主分支中。
分支流程说明
项目中长期存在的两个分支
● master:主分支,负责记录上线版本的迭代,该分支代码与线上代码是完全一致的。
● develop:开发分支,该分支记录相对稳定的版本,所有的feature分支和bugfix分支都从该分支创建。
其它分支为短期分支,其完成功能开发之后需要删除
● feature/
:特性(功能)分支,用于开发新的功能,不同的功能创建不同的功能分支,功能分支开发完成并自测通过之后,需要合并到 develop 分支,之后删除该分支。
● bugfix/:bug修复分支,用于修复不紧急的bug,普通bug均需要创建bugfix分支开发,开发完成自测没问题后合并到 develop 分支后,删除该分支。
● release/:发布分支,用于代码上线准备,该分支从develop分支创建,创建之后由测试同学发布到测试环境进行测试,测试过程中发现bug需要开发人员在该release分支上进行bug修复,所有bug修复完后,在上线之前,需要合并该release分支到master分支和develop分支。
● hotfix/*:紧急bug修复分支,该分支只有在紧急情况下使用,从master分支创建,用于紧急修复线上bug,修复完成后,需要合并该分支到master分支以便上线,同时需要再合并到develop分支。
工作流程
开发前克隆 dev 分支到本地
git clone -b dev https://github.com/xxxx/usercenter.git
新建分支:
获取 dev 分支最新代码
git checkout dev
git pull
新建一个特性分支
git branch feature/xxx
切换到该特性分支,进行开发
git checkout feature/xxx
提交分支:
提交代码
git add .
git commit
开发过程中,将本地仓库开发中的特性分支 push 到远程仓库(可选的)
git push -u origin feature/xxx
发出 Pull Request
Git规范
分支命名
除了主要分支的名字是固定的之外,派生分支是需要自己命名的,这里就要有个命名规范了。强烈推荐用如下形式:
● feature——按照功能点(而不是需求)命名;
● release——用发布时间命名,可以加上适当的前缀;
● hotfix——GitLab 的 issue 编号或 bug 性质等。
另外还有 tag,用语义化的版本号命名。
提交
- 提交时的粒度是一个小功能点或者一个 bug fix,这样进行恢复等的操作时能够将「误伤」减到最低;
- 用一句简练的话写在第一行,然后空一行稍微详细阐述该提交所增加或修改的地方;
- 不要每提交一次就推送一次,多积攒几个提交后一次性推送,这样可以避免在进行一次提交后发现代码中还有小错误。
常用命令
● git commit
● git add [–all]
● git push
● git pull
● git branch [-d]
● git merge
● git rebase
● git checkout [-b] BRANCH_NAME