⼀、基本开发流程:
⼆、分⽀命名
2.1主分⽀
① master :随时可供在⽣产环境中部署的代码
② dev:保存当前稳定并且最新的开发分⽀(多⼈开发同⼀分⽀)
2.2辅助分⽀
主要⽤于新功能的并⾏开发、对⽣产代码的缺陷进⾏紧急修复⼯作。合并 master后应该⽴即删除
①⽤于开发新功能时所使⽤的feature分⽀
②⽤于修正⽣产代码中的缺陷的bug分⽀
2.3根据实际开发情况合理命名分⽀:分⽀类型_开发者_时间_开发内容
① feature分⽀:f_yourname_20170416_customLimit
② bug分⽀:bug_yourname_20170416_customLimit
③ dev分⽀:dev_yourname_20170416_customLimit
三、git-commit
3.1什么时候commit?
commit在什么时候都可以,但是不建议为了保存代码⽽commit,每⼀次commit⼀定是代表代码开发进⾏到了某⼀个阶段,可以在后续开发或者合并代码出现错误的时候可以快速回到这个阶段。
3.2 commit注释
每次提交必须要有提交注释,注释根据本次提交情况,进⾏简洁描述
3.3 多次提交合并为⼀次提交(rebase)
① git fetch
② git rebase
下⾯⽰范⼀下rebase的使⽤⽅法:
a.更新本地仓库
b.选择origin master
c.commit 合并
d.存在冲突时,必须要解决
e.继续 rebase
四、 Git-push
4.1什么时候push?
①代码需要提测,并且⾃⼰都测试OK了,如果⼀次性测试通过则可以把master合并到⾃⼰的分⽀,然后push⾃⼰的分⽀,进⾏提测
②代码提测了,如果有问题,把问题修改好后,再push⾃⼰的分⽀。
4.2 push流程
git fetch
git checkout dev
git branch -b copy_dev(copy新分⽀进⾏合并)
git merge origin master (存在冲突必须解决)
解决冲突:
a) git reset --HARD HEAD^
b) git lg(查看你的所有提交的历史)
git checkout dev
git merge copy_dev
git branch -d copy_devgit push origin dev
五、Git-issue
5.1对需求完全了解后,开发前先整理思路,在git上填写Issues
①整理思路,快速开发代码
②⽅便后续出现线上问题,快速定位
③有类似功能开发时,⽅便别⼈借鉴,和⾃⼰快速回忆
④相互学习
5.2 写完Issues后,找有相关开发经验同事评审
5.3 影响范围较⼤的Issues必须拉上⼤家⼀起评审
5.4 issues规范 (别⼈⼀看就懂)
①需求概述
②难点,解决⽅案
③概要设计
④详细设计
六、git-codeReview
6.1 代码开发完毕,⾃测通过后,提测之前,在git上提merge Requests ① WIP:分⽀标题
② Issues
6.2 找有相关开发经验⼈员进⾏评审
6.3 按照评审⼈的建议进⾏修改,修改后⾃测
七、 Git-merge
7.1 merge流程
① merge之前保证⾃⼰的⼯作区是⼲净的
② fetch,更新本地仓库
③合并master,如果出现merge conflict,找到相关开发⼈员⼀起解决,确保操作正确
④ merge完成后,验证是否成功
7.2 合主⼲
①多⼈在不同分⽀上开发多个需求,需要同时上线,事先确定各⾃上线时间
②别⼈合主⼲后,需要再次拉取最新的master进⾏merge,进⾏回归测试
③上线的代码⼀定是提测的代码,是完全⼀模⼀样,中间如果有过合并代码就要重新提测,早合并代码⽐较合适 ④ merge Request上,需要附带Issue,代码评审⼈,测试⽤例 下载本文