Git团队协作规范

Git团队协作规范

为什么要使用Git

为什么要用git?我觉得不要我多说多了吧,因为大家都在用呀,用起来就是爽!!!
所以下面介绍点学习git资料,让你爱上学习。
话说被大伙称为git圣经
猴子教你来学习下吧,同时来通过Learn Git Branching来玩下通关的刺激吧。git的相关资料大家自己再找时间去学习,接下来大家主要看下面关于我们git作业的一些相关规定,请仔细阅读,牢记在心,避免工作中踩坑。

分支约定

主分支

  • master 分支原则
  • master分支存放的是随时可供在生产环境中部署的稳定版本代码
  • 一个项目只能有一个master分支
  • 仅在发布新的可供部署的代码时才更新master分支上的代码
  • 每次更新master,都需对master添加指定格式的tag(git tag -a v0.0.1),用于发布或回滚。
  • master分支代码只能被release/分支或hotfix分支合并,意味着不能在master分支上直接修改代码*
  • release分支
  • 只能衍生于master分支
    命名规则:release/,“”以本次发布的版本号为标识,比如我们的月度版本release/2020.2.27,但一般项目稳定情况下,用release作为分支名即可。
  • release主要是为发布正式新版本做准备,代码的合并(merge)都来源于我们已经验证好并确定要上正式的开发分支feature/*。
  • 一旦成功上线,就要回归到master分支,如果在release版本期间有修复改动(比如说上线前的小缺陷),也要回归到dev分支
  • dev
  • dev分支是保存了测试环境最新的开发成果的分支
  • 一个项目只能有一个dev分支
  • dev分支主要是针对的测试版本的发布,项目初次开发,还是允许在此分支开发,一旦有线上版本,后面的开发都必须从master或者release分支切一个分支出去开发(feature/*。
  • dev 作为为测试环境验证分支,主要是为了满足多人同时开发多个需求时的场景。从master分支切换过来,但是不会回归master分支,也不能在此分支上修改代码,此分支只用于测试环境的发版

开发分支(特性(feature)分支)

  • 这个分支是针对新功能(新需求或版本迭代)的开发从master分支分叉出来的
  • 命名规则feature/* 例如:feature/install 安装需求
  • 此分支一般不需要提交到远程,但如果此项目本地分支比较多,还是建议提交远程,因为有丢失.git 文件风险(我就遇到过)
  • 每个feature/*分支颗粒度要尽量下,比如一次只针对一个需求或者一个功能,但是如果自己比较明确两个需求能够同时验证和上线,那么颗粒度也能适当放宽。
  • 开发完成后,如果此项目只有目前一个需求等待验证,那么直接用此分支发布测试验证即可,如果有多个需求,而且是不同人在开发,请合并到dev分支发布验证。当需求验证通过后,再将此分支合并到release或者master(单独一个人开发开发,没有release分支的情况下)分支。
  • feature分支只与release分支交互,不能与dev和master分支直接交互
  • 当功能因为各种原因不能开发;或者废弃了;或者已经完整上线,就直接删除这个分支,如果提交到了远程,也一并删除

hotfix分支

  • 命名规则:hotfix-* 如果是短小快速的分支,也可以用hotfix作为名称即可
  • hotfix分支用来快速给已发布产品修复bug或微调功能
  • 从master分支或者release/*分支衍生出来
  • 修复好后,先合并到dev分支验证。验证通过后需要回归master
  • hotfix分支一旦建立就将独立,不可再从其他分支pull代码

bugfix分支

  • 命名规则: bugfix/* 如果是短小快速的分支,也可以用bugfix作为名称即可
  • bugfix分支用来快速给未上线产品或者迭代需求修复bug或微调功能
  • 从master分支或者release分支或者对应的开发分支feature/*衍生出来
  • 修复好后,先合并到 dev 分支验证。验证通过后需要回归release 和master

下图为分支管理的模型图

git工作流.png

使用规范

commit使用基本要求

  • 所有commit必须有注释,内容必须简洁明了的描述本次commit涵盖了哪些内容。 严禁注释内容过于简单或不能明确表达提交内容的!
  • 合理控制提交内容的颗粒度,一次commit含一个独立功能点。严禁一次提交涵盖多个功能项。

--no-ff 的作用

默认情况下,Git执行“快进式合并(fast-farward merge)”,会直接将Master分支指向dev分支。使用了--no-ff参数后,会执行正常的合并,在Master分支上生成一个新节点。所以为了保证版本的演进的清晰,我们希望采用这种做法。

git merge --no-ff release

git 相关命令脚本

配置别名

  • 以下命令将status checkout commit branch 单词缩减为st co ci br,并且是全局作用。具体可以参考 配置别名
 git config --global alias.st status
 git config --global alias.co checkout
 git config --global alias.ci commit
 git config --global alias.br branch

//  以后 你就可以愉快使用简单命令了
git st 代替 git status
git co 代替 git checkout
git ci 代替 git commit
git br 代替 git branch

常见命令语句

  • 创建切换dev分支
// 如果当前处在master分支,那最后一个参数可以不填。此命令的效果是创建dev分支,并切换到dev分支
git co -b dev master
git co -b feature/test master  //创建feature/test 分支  
  • 提交代码
git ci -a -m "des"// 可以将git add . 和 git ci 命令合为一体
  • feature/test开发分支合并到release分支,并删掉开发分支
git co release 
git merge --no-off feature/test  // 采用--no-off 的合并模式
git br -d feature/test //删除本地分支 但是如果没有merge git会提示你改用大写D
git push origin :feature/test  //删除远程分支
git push origin --delete feature/test  //这样也能删掉远程分支
  • 版本上线后master 分支打tag
git tag -a v0.0.1
  • 查看已经commit的版本
git log
git log --pretty=oneline //简洁的方式
git log --oneline //更简洁的方式
  • 回退版本
git reset --hard HEAD^ //回退上一个版本 HEAD^^意思就是上上个版本
// 如果要回到特定版本
git reset --hard *** //*** 表示上面git log 查询出来的哈希值

版本号简单说明(tag)

  **v1.2.3**

1.主版本号:当新增或修改了不兼容的API操作

2.次版本号:当新增或者修改了向下的功能

3.修订号:当做了向下兼容的问题修正

参考资料

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,026评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,655评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,726评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,204评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,558评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,731评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,944评论 2 314
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,698评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,438评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,633评论 2 247
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,125评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,444评论 3 255
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,137评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,103评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,888评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,772评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,669评论 2 271