git分支管理和工做流规范:不一样场景细化和演示

前两篇介绍了 git基本概念具体的规范,本篇针对不一样的使用场景作演示。git

分支

分支命名
  • master 分支名称保持不变
  • develop 分支名称保持不变
  • feature/<分支名称> 功能分支
  • release/<分支名称> 待上线分支
  • hotfix/<分支名称> 线上紧急修复分支
拉取远程分支

git checkout -b <分支名称> origin/<分支名称> 拉取并关联远程分支app

建立新分支 

git checkout -b <分支名称>  建立新分支并切换到新分支post

提交备注规范

首行,简明扼要地描述更新内容; 空出一行; 以后,详细描述更新内容。测试

若是对应jira的问题,填写jira路径:issue:http://jira.n.xiaomi.com/test13d

举例cdn

修复bug,工单详情页面,工单记录页面,客服头像不显示
<空行占位符>
致使缘由:代码逻辑考虑不全
jira: http://jira.n.xiaomi.com/test1blog

如何整理本身的commit,保持commit清晰

git commit --amend 修改最近一次提交; git rebase  -i  整理提交开发

  • edit,编辑某一次提交的备注;
  • squash,把当前commit向前合并,一直合并到pick为止;
  • fixup,和squash很是相似,惟一的区别就是,fixup会忽略当前commit的信息;

再次强调:若是commit已经提交到远程git仓库,必定不要再进行整理合并commit。get

举例说明it

  1. 基于develop分支建立一个功能分支,名称为feature/feature1;

    git checkout -b feature/feature1

  2. 新建一个文件test.txt,提交;

    git commit -m ‘add test.txt file’

  3. 修改文件test.txt,添加一行内容,提交;

    git commit -m ‘update text.txt file, append content: love vae music’

  4. 发现上一步添加的内容错误,想修改内容,但不添加新的commit 修改成正确的内容;

    git commit —amend; 会弹出修改窗口,修改注释,若是不变,直接回车;

  5. 连续提交3个commit,但想合并为1个commit;

  6. 使用git log,肯定要rebase的commit-id;

  7. git rebase -i df87607d5dd24c0a73f23284e6988d6d32c0d3a4 显示编辑窗口

  8. 进行编辑,修改以下:

  9. 最终结果只会保留commit1:

新人加入,如何加入开发

从远程拉取develop分支: git checkout -b <分支名称> origin/<分支名称> 拉取并关联远程分支

若是要开发新功能,基于develop分支建立feature分支: git checkout -b feature/feature1

若是要修复线上紧急bug,基于master分支建立hotfix分支: git checkout -b hotfix/hotfix1

开发一个feature

基于develop分支建立feature分支;

开发完成后,整理本身的commit,把无心义的commit进行合并;

准备在下一次迭代上线,整理完成后,合并到develop分支;

不许备在下一次迭代上线,整理完成后,push当前分支到远程git仓库,等待准备上线时,再合并到develop分支: git push origin feature/feature1:feature/feature1

合并到develop分支前,必定要通过本地测试!

肯定版本上线计划及上线

总体上,要有明确的上线计划,肯定每次上线哪些功能;

只有确认在下一次版本上线的feature才能合并到develop分支;

提交测试,修复测试反馈的bug

提交测试前,确保全部人的代码修改都已提交到develop分支;

基于develop分支,建立release分支: git checkout -b release/release1

发布release/release1分支到测试环境,测试人员进行测试;

测试过程当中发现的bug,直接在release分支进行修复并提交;

测试完成,确认上线,合并代码到master分支和develop分支,用release分支名打Tag,删除release分支: git tag release.1.1.1 git branch -d release/release1

修复线上bug

基于master分支,建立hotfix分支 git checkout -b hotfix/hotfix1

修复完成后,finish hotfix,合并代码到master和develop分支;

情情说
相关文章
相关标签/搜索