Git是已经是世界上最流行的版本管理系统了,平时的开发过程中少不了要和git打交道,通常git小白只会用到一些常见的commit、push、pull等命令,今天小编和大家分享一些git中非常好用但又容被忽视的小功能。
使用.gitignore
场景:
- 一些系统或者 IDE 会在目录下生成与项目不相关的文件,而这些文件我们不期望被提交到仓库之中,如Python运行产生的__pycache__文件夹
- 数据文件特别大,一般不建议上传到仓库,只需要提供一下数据获取方法的文档就好
# 忽略所有.json后缀的文件
*.json
# 忽略node_modules中所有的文件
node_modules/
# 忽略foo目录下除去foo/bar/的内容
foo/
!foo/bar/
参考文档: https://git-scm.com/docs/gitignore
Commit Message 格式
目前规范使用较多的是 Angular 团队的规范, 继而衍生了 Conventional Commits specification. 很多工具也是基于此规范, 它的 message 格式如下:
# head: <type>(<scope>): <subject>
# - type: feat, fix, docs, style, refactor, test, chore
# - subject: start with verb (such as 'change'), 50-character line
# body: 72-character wrapped. This should answer:
# * Why was this change necessary?
# * How does it address the problem?
# * Are there any side effects?
# footer:
# - Include a link to the ticket, if any.
# - BREAKING CHANGE
大致分为三个部分(使用空行分割):
- 标题行: 必填, 描述主要修改类型和内容
- 主题内容: 描述为什么修改, 做了什么样的修改, 以及开发的思路等等
- 页脚注释: 放参考链接、文档地址、 Breaking Changes 或 Closed Issues
分别由如下部分构成:
- type: commit 的类型
- feat: 新特性
- fix: 修改问题
- refactor: 代码重构
- docs: 文档修改
- style: 代码格式修改, 注意不是 css 修改
- test: 测试用例修改
- chore: 其他修改, 比如构建流程, 依赖管理.
- subject: commit 的概述, 建议符合 50/72 formatting
- body: commit 具体修改内容, 可以分为多行, 建议符合 50/72 formatting
- footer: 一些备注, 通常是 BREAKING CHANGE 或修复的 bug 的链接.
示例:
fix(redis): 修复redis pull异常退出
feat(组件):新增redis集群
feat(MQ): 新增消息队列包
Commit Message 模板设置
每次commit都要设置格式十分不方便,git提供了一个自定义commit模板的方法,这样在commit的时候,会自动打开模板,我们只需要修改模板中的内容就好。模板设置方法如下:
- 在根目录建立模板文件
如 xxx_template文件,其内容如下:
<feat>(<scope>): <subject>
<body>
<footer>
# - type:
feat(新特性),
fix(修改问题),
docs(文档修改),
style(代码格式修改, 注意不是 css 修改),
refactor(代码重构),
test(测试),
chore(其他修改, 比如构建流程, 依赖管理)
# - scope: (可以为空)
影响的的范围
# - subject
提交描述
- 设置模板,命令如下
git config commit.template [模板文件名]
//这个命令只能设置当前分支的提交模板
git config — —global commit.template [模板文件名]
//这个命令能设置全局的提交模板,注意global前面是两杠
例如:
git config --global commit.template xxx_template
设置好以后,以后每次提交代码到git仓库的时候,就会自动打开该模板
扫码下图关注我们不会让你失望!