git规范细则

git规范细则


对于Git的提交日志,我们有非常明确而详细的提交规范。这将有助于我们在查看 项目历史时, 更容易明确每一次提交的内容。

提交消息格式

每个提交消息都由一个标题、一个正文和一个页脚组成。而标题又具有特殊格式,包括修改类型、影响范围和内容主题:

修改类型(影响范围): 标题
<--空行-->
[正文]
<--空行-->
[页脚]

标题是强制性的,但标题的范围是可选的

提交消息的任何一行都不能超过100个字符!这是为了让消息在GitHub以及各种Git工具中都更容易阅读。

修改类型

每个类型值都表示了不同的含义,类型值必须是以下的其中一个:

  • feat: 提交新功能
  • fix:修复了bug
  • docs:只修改了文档
  • style:调整代码格式,未修改代码逻辑(比如修改空格、格式化、缺少分号等)
  • refactor:代码重构,既没修复bug也没有添加新功能
  • perf:性能优化,提高性能的代码更改
  • test:添加或修改代码测试
  • chore:对构建流程或辅助工具和依赖库(如文档生成等)的更改

代码回滚

代码回滚比较特殊,如果本次提交是为了恢复到之前的某个提交,那提交消息应该以“revert:”开头,后跟要恢复到的那个提交的标题。然后在消息正文中,应该写上“This reverts commit ”,其中“”是要还原的那个提交的SHA值。

影响范围

范围不是固定值,它可以是你提交代码实际影响到的任何内容。例如 l o c a t i o n 、 location、 locationbrowser、 c o m p i l e 、 compile、 compilerootScope、ngHref、ngClick、ngView等,唯一需要注意的是它必须足够简短。

当修改影响多个范围时,也可以使用“*”。

标题

标题是对变更的简明描述:

  • 使用祈使句,现在时态:是“change”不是“changed”也不是“changes”
  • 不要大写首字母
  • 结尾不要使用句号

正文

正文是对标题的补充,但它不是必须的。和标题一样,它也要求使用祈使句且现在时态,正文应该包含更详细的信息,如代码修改的动机,与修改前的代码对比等。

页脚

任何Breaking Changes(破坏性变更,不向下兼容) 都应该在页脚中进行说明,它经常也用来引用本次提交解决的GitHub Issue

Breaking Changes应该以“BREAKING CHANGE:”开头,然后紧跟一个空格或两个换行符,其他要求与前面一致。

git 使用流程规范(merge-request)

如今很多项目都采取merge request方式来进行codereview,所有掌握merge request很有必要,步骤如下:
1.现在本地用创建一个本地分支,比如叫xx_branch。
2.改动xx_branch你需要改动的代码。
3.进入你的项目根目录下,运行如下命令,将xx_branch推到远程分支。
git add .
git commit -a -m ‘xxxxx’
git push -u origin xx_branch
4.在gitlab上面操作,进入xx项目下,点击merge request选项,然后选择你之前推到远端的xx_branch和你要合并到哪个分支,比如你要合并到master上。
5.点击merge request。

git解决冲突

1. git stash 
2. git pull
3. git stash pop
4. 解决冲突
5. git pull

代码合并

1.单分支合并

git stash 
git pull
git stash pop
# 合并冲突并进行提交
git push

2.多分支合并

# 将my_feature合并到develop
git clone -b my_feature ***
git checkout -b develop
# 将本地的develop追踪远程的develop
git branch --set-upstream-to=origin/develop develop
git pull
# 合并解决冲突,进行提交
git push

分支删除

# 删除本地分支
git branch -D $branch_name

# 删除远程分支
git push origin --delete $branch_name
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1.为什么要写这个文档 本文是结合项目中使用git的经验并参考《Git权威指南.pdf》总结出来的。《Git权威指南.pdf》全强大很细,但有些东西太广太细,不适合快速上手。本文档适合在项目实践中想快速上手git的新手。先看本文档基本上手,在实际使用中遇到什么问题在深入研究《Git权威指南.pdf》或者google,这种学习规划的效率应该是最好的。欢迎更正和补充。 2.GIT和SVN、CVS的区别 版本库分两种 集中式版本库:CVS和SVN 分布式版本库:GIT轻量级,高性能 集中式版本库的缺点:代码集中放在一台服务器上,必须有网络才能连接服务器。 GIT的最大优势:每个人都会在本地有自己的版本库,而不是连到服务器公共的版本库。所有的历史记录都会存储在本地版本库中,向版本库提交代码无需连接远程版本库,而是记录在本地版本库中。 用git push可以把修改上传到远程的主版本库中。 其实SVN的本地历史比较也就相当于本地版本库,只是功能没有那么强大,只能比较单个文件的本地历史记录。 在SVN中版本库在服2.3.务器上,在GIT中,版本库不在服务器上,而在本地workspace中的.git目录中。 3.为什么要使用git 本次项目的版本库主要在本地修改,但也可能在其他地区进行merge等操作,所以用分布式版本管理工具git。 (基于项目版本管理经验修改,如果意见,请指正,谢谢!)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Erice_s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值