c07e56ef58bda7ab596a16557354b7ed.gif

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: 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的时候,会自动打开模板,我们只需要修改模板中的内容就好。模板设置方法如下:

  1. 在根目录建立模板文件

如 xxx_template文件,其内容如下:

(): # - type:     feat(新特性),     fix(修改问题),     docs(文档修改),     style(代码格式修改, 注意不是 css 修改),     refactor(代码重构),     test(测试),     chore(其他修改, 比如构建流程, 依赖管理)# - scope: (可以为空)    影响的的范围# - subject    提交描述
  1. 设置模板,命令如下

git config commit.template [模板文件名]   //这个命令只能设置当前分支的提交模板

git config — —global commit.template [模板文件名]   //这个命令能设置全局的提交模板,注意global前面是两杠

例如:

git config --global commit.template   xxx_template

设置好以后,以后每次提交代码到git仓库的时候,就会自动打开该模板

历史文章推荐阅读: 从零开始学自然语言处理(四)—— 做 NLP 任务文本 id 化与预训练词向量初始化方法 从零开始学自然语言处理(三)——手把手带你实现word2vec(skip-gram) 从零开始学自然语言处理(二)——手把手带你用代码实现word2vec 从零开始学自然语言处理(一)—— jieba 分词 一文详解NLP语料构建技巧 你不知道的Python环境管理技巧,超级好用! Python快速安装库的靠谱办法 你只会用Python的pip安装包?别错过这些好用功能!
扫码下图关注我们不会让你失望! 45e05ec35697f126d1608f8a7a683921.png b45afbbfb49b8e53697ecf9e3e75dc51.png 喜欢记得点再看哦,证明你来看过~
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐