git基本使用规范 你真的会管理你的代码吗?

项目 Git 使用规范

  1. 分支管理规范
    1.1 分支说明和操作
    master 分支
    master 永远处于稳定状态,这个分支代码可以随时用来部署。不允许在该分支直接提交代码。
    develop 分支
    开发分支,包含了项目最新的功能和代码,所有开发都依赖 develop 分支进行。
    小的改动可以直接在 develop 分支进行,改动较多时切出新的 feature 分支进行。
    feature 分支
    功能分支,开发新功能的分支。
    开发新的功能或者改动较大的调整,从 develop 分支切换出 feature 分支,分支名称为 feature/xxx ,如果该功能只是某个模块的,分支名称添加模块名,例如 feature/train/student_ticket。
    开发完成后合并回 develop 分支并且删除这个 feature 分支,相应的操作如下:

切出新的 feature/xxx 分支

git checkout -b feature/xxx develop

写代码,提交,写代码,提交

feature 开发完成,合并回 develop

git checkout develop

务必加上 --no-ff,以保持分支的合并历史

git merge --no-ff feature/xxx
git branch -d feature/xxx
如果想要当前分支能保持与 develop 的更新,请用 rebase,操作如下:

假设当前在 feature/xxx 分支

git rebase develop

rebase 过程中出现冲突,请按照提示进行操作,只要是 git rebase 相关的指令

rebase 会修改历史,如果你的 feature 分支是跟人合作开发的或者已经提交到远端,请互相做好协调。
release 分支
发布分支,新功能合并到 develop 分支,准备发布新版本时使用的分支。
当 develop 上的功能和 bug 修得差不多的时候,我们就要发布新版本了,这个时候从 develop 分支上开出一个 release 分支,来做发布前的准备,分支名约定为rel/版本号,eg:rel/953。
发布之前发现的 bug 就直接在这个分支上修复,确定没有问题后就会合并到 master 分支,发布。相应操作如下:
git checkout -b release/20121221 develop

修复 bug、检查没问题后合并到 master 分支并删除

git checkout master
git merge --no-ff release/20121221

添加版本标记,这里可以使用版本发布日期或者具体的版本号

git tag 20121221
为了让 release 分支上 bug 修改作用到 develop 分支,我们还需要把这个 release 分支合并回 develop 分支:
git checkout develop
git merge --no-ff release/20121221

到此,这个 release 分支完成了它的使命,可以被删除了

git branch -d release/20121221
hotfix 分支
紧急修复线上 bug 分支。
如果我们发现线上的代码(也就是 master)有 bug,但是这个时候我们的 develop 上的有些功能还没完成,还不能发布,这个时候我们可以从 master 分支上开出一个 hotfix 分支(记住:直接在 master 上提交代码是不允许的!),分支名约定为hotfix/xxx,在这个分支上修改完 bug 后需要把这个分支同时合并到 master 和 develop 分支。相应操作如下:
git checkout -b hotfix/xxx master

修完 bug 后

git checkout master
git merge --no-ff hotfix/xxx
git checkout develop
git merge --no-ff hotfix/xxx

hotfix 分支完成使命

git branch -d hotfix/xxx
例外:当 hotfix 分支完成,这个时候如果有 release 分支存在,那么这个 hotfix 就应该合并到 release,而不是 develop 分支。
1.2 分支操作注意事项
同一分支 git pull 使用 rebase
git pull --rebase
默认的 git pull 行为是 merge,可以进行如下设置修改默认的 git pull 行为:
#为某个分支单独设置,这里是设置 dev 分支
git config branch.dev.rebase true
#全局设置,所有的分支 git pull 均使用 --rebase
git config --global pull.rebase true
git config --global branch.autoSetupRebase always
分支合并使用 --no-ff

例如当前在 develop 分支,需要合并 feature/xxx 分支

git merge --no-ff feature/xxx
1.3 项目分支操作流程示例
切到 develop 分支,更新 develop 最新代码
git checkout develop
git pull --rebase
新建 feature 分支,开发新功能
git checkout -b feature/train/crn


git add .
git commit -m “feat(rob): 抢票详情页改成 CRN 页面”

其他提交


如果此时 develop 分支有一笔提交,影响到你的 feature 开发,可以 rebase develop 分支,前提是 该 feature 分支只有你自己一个在开发,如果多人都在该分支,需要进行协调:

切换到 develop 分支并更新 develop 分支代码

git checkout develop
git pull --rebase

切回 feature 分支

git checkout feature/train/crn
git rebase develop

如果需要提交到远端,且之前已经提交到远端,此时需要强推(强推需慎重!)

git push --force
完成 feature 分支,合并到 develop 分支

切到 develop 分支,更新下代码

git check develop
git pull --rebase

合并 feature 分支

git merge --no-ff feature/train/crn

删除 feature 分支

git branch -d feature/train/crn

推到远端

git push origin develop
当某个版本的 feature 分支均合并到 develop 分支,切出 release 分支,提交测试并进行 bug fix

当前在 develop 分支

git checkout -b release/20180614 develop

在 release/20180614 分支进行 bug fix

git commit -m “fix(rob): 抢票页面座席添加判空”

所有 bug 修复完成,准备发布新版本

master 分支合并 release 分支并添加 tag

git checkout master
git merge --no-ff release/20180614

添加版本标记,这里可以使用版本发布日期或者具体的版本号

git tag 20121221

develop 分支合并 release 分支

git checkout develop
git merge --no-ff release/20180614

删除 release 分支

git branch -d release/20180614
至此,一个新版本发布完成。

  1. 提交信息规范
    git commit 格式:():
    type 类型,提交的类别
    feat: 新功能
    fix: 修复 bug
    docs: 文档变动
    style: 格式调整,对代码实际运行没有改动,例如添加空行、格式化等
    refactor: bug 修复和添加新功能之外的代码改动
    perf: 提升性能的改动
    test: 添加或修正测试代码
    chore: 构建过程或辅助工具和库(如文档生成)的更改
    scope 修改范围主要是这次修改涉及到的部分,简单概括,例如 login、train-order
    subject 修改的描述
    具体的修改描述信息
    范例:
    feat(hotel-detail): 酒店详情页添加 AB 测试
    fix(login): 登录页面错误处理
    test(crn): CRN 添加测试代码

  2. 提交建议
    多次提交,避免一次提交大量改动
    每次提交时察看提交文件,明确提交的具体内容
    提交信息规范化,描述具体的提交信息,避免泛化的提交信息,例如“添加新功能”、“bug fix”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值