成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Git Commit Message 應該怎么寫?

開發 前端
scope 用于說明 commit 的影響范圍,比如數據層、控制層、視圖層等等,視項目不同而不同。如果你的修改影響了不止一個 scope,就可以使用 * 代替。

最近被同事吐槽了,說我代碼提交說明寫的太差。其實都不用他吐槽,我自己心里也非常清楚。畢竟很多時候犯懶,都是直接一個 -m "fix" 就提交上去了。

這樣做是非常不好的,我也是自食惡果,深受其害。特別是查看歷史提交記錄時,想通過提交說明來了解當時的功能變更,基本不可能,都得點進去看代碼才行。

所以這兩天看了一些如何寫好提交說明的資料,系統地學習了一下。雖然團隊沒有這方面的要求,但是想要進步,得對自己提更高的要求才行。

一般使用 git 提交代碼的話,可以使用 -m 參數來指定提交說明,比如:

$ git commit -m "hello world"

如果一行不夠,可以只執行 git commit,這樣就會跳出文本編輯器來寫多行:

$ git commit

Commit Message 格式

Commit Message 包括三個部分:Header,Body 和 Footer。

<Header>

<Body>

<Footer>

其中,Header 是必需的,Body 和 Footer 可以省略。

Header

Header 部分只有一行,包括三個字段:type(必需)、scope(可選)、subject(必需)。

<type>(<scope>): <subject>

type

type 用于說明 commit 的類別,具體的標識如下:

  • feat:一個新的功能(feature);
  • fix:修復 bug;
  • docs:修改文檔,比如 README.md、CHANGELOG.md 等;
  • style:修改代碼的格式,不影響代碼運行的變動,比如空格、格式化代碼、補齊句末分號等等;
  • refactor:代碼重構,沒有新功能的添加以及 bug 修復的代碼改動;
  • perf:優化代碼以提高性能;
  • test:增加測試或優化改善現有的測試;
  • build:修改影響項目構建文件或外部依賴項,比如 npm、gulp、webpack、broccoli 等;
  • ci:修改 CI 配置文件和腳本;
  • chore:其他非 src 路徑文件和測試文件的修改,比如 .gitignore、.editorconfig 等;
  • revert:代碼回退;

scope

scope 用于說明 commit 的影響范圍,比如數據層、控制層、視圖層等等,視項目不同而不同。

如果你的修改影響了不止一個 scope,就可以使用 * 代替。

subject

subject 是 commit 目的的簡單描述,不超過 50 個字符,結尾不需要句號。

Body

Body 部分是對本次 commit 的詳細描述,可以分多行。

Body 部分應該說明代碼變動的動機,以及與以前行為的對比。

More detailed explanatory text, if necessary.  Wrap it to
about 72 characters or so.

Further paragraphs come after blank lines.

- Bullet points are okay, too
- Use a hanging indent

Footer

Footer 部分主要用于兩種情況:不兼容變動和處理 Issue。

不兼容變動

如果當前代碼與上一個版本不兼容,則 Footer 部分以 BREAKING CHANGE: 開頭,后面就是對變動的描述、以及變動理由和遷移方法。

BREAKING CHANGE: Previously, $compileProvider.preAssignBindingsEnabled was set to true by default. This means bindings were pre-assigned in component constructors. In Angular 1.5+ the place to put the initialization logic relying on bindings being present is the controller $onInit method.

To migrate follow the example below:

Before:

```js
angular.module('myApp', [])
.component('myComponent', {
bindings: {value: '<'},
controller: function() {
this.doubleValue = this.value * 2;
}
});
```

After:
```js
angular.module('myApp', [])
.component('myComponent', {
bindings: {value: '<'},
controller: function() {
this.$onInit = function() {
this.doubleValue = this.value * 2;
};
};
this.doubleValue = this.value * 2;
}
});
```

Don't do this if you're writing a library, though, as you shouldn't change global configuration then.

處理 Issue

處理 Issue 分為兩種情況,分別是關聯 Issue 和關閉 Issue。

比如本次提交如果和某個 issue 有關系:

Issue #1, #2, #3

如果當前提交信息解決了某個 issue:

Close #1, #2, #3

Revert

還有一種特殊情況,如果當前 commit 用于撤銷以前的 commit,則必須以 revert: 開頭,后面跟著被撤銷 commit 的 Header。

revert: feat(pencil): add 'graphiteWidth' option

This reverts commit 667ecc1654a317a13331b17617d973392f415f02.

Body 部分的格式是固定的,必須寫成 This reverts commit &lt;hash>.,其中 hash 是被撤銷 commit 的 SHA 標識符。

如果當前 commit 與被撤銷的 commit,在同一個發布(release)里面,那么它們都不會出現在 Change log 里面。如果兩者在不同的發布,那么當前 commit,會出現在 Change log 的 Reverts 小標題下面。

最后來看一個例子,算是一個總結,至于具體內容還是要根據實際情況來填寫。

feat: 添加了分享功能

給每篇博文添加了分享功能

- 添加分享到微博功能
- 添加分享到微信功能
- 添加分享到朋友圈功能

Issue #1, #2
Close #1

插件推薦

有了這些規范,也知道怎么寫了,但是不是會擔心記不住呢?不要怕,有插件可以用,如果使用 VsCode 的話,可以安裝一個叫 Commit Message Editor 的插件。

可以根據提示信息直接寫:

圖片

也可以使用表單的方式,有選項可以選擇:

圖片

這樣不僅可以很方便地寫提交說明了,還可以使提交說明更加的規范。

以上就是本文的全部內容,如果覺得還不錯的話歡迎點贊,轉發和關注,感謝支持。

參考文章:

  • https://juejin.cn/post/6960541430473293837
  • https://mrseawave.github.io/blogs/articles/2021/03/31/git-commit-message/
責任編輯:武曉燕 來源: AlwaysBeta
相關推薦

2023-07-16 23:09:55

GitType代碼

2024-08-07 10:24:04

2020-08-14 08:00:39

Git數據層控制層

2020-09-17 14:20:24

數據科學簡歷崗位

2020-05-12 14:57:06

git commit代碼前端

2020-06-23 14:28:24

MySQL商品數據

2012-02-24 09:34:48

SVNGit

2015-10-26 09:19:28

PHP經驗

2019-03-28 14:30:21

代碼開發命令

2020-09-11 10:24:04

設計移動端交互輸出文檔

2021-03-04 09:11:57

日志開發打印

2012-08-27 15:25:41

移動App移動應用App

2021-01-22 05:55:12

GitAngularJStype

2020-07-14 08:16:13

代碼互聯網 PC

2021-09-30 07:57:14

linuxGit

2020-10-23 09:38:41

數據分庫分表數據遷移

2016-09-21 10:18:26

阿里Dubbo性能測試

2021-03-26 09:11:23

技術研發工程師

2021-07-07 17:26:20

云原生云原生架構阿里云

2023-01-28 08:04:08

AOPSpring框架
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品国产高清一区二区三区 | 欧美日韩精品在线一区 | 国产日韩欧美另类 | 91亚洲视频在线 | 亚洲精品在线观看网站 | 99re在线视频 | 啪啪综合网 | 欧美2区| 国产美女自拍视频 | 91成人在线视频 | 国产精品中文字幕在线 | 国产日韩精品在线 | 国产精品一区二区久久 | 天堂资源 | 91在线色视频 | 国产精品欧美一区二区三区 | 毛片一区二区三区 | 日韩三级在线观看 | 91成人在线视频 | 国产精品久久久久久久久久久免费看 | 欧美性生活视频 | 国产色黄| 久久伊人青青草 | 国产精品1区2区 | 国产99久久| 国产午夜精品视频 | 99视频免费 | 久久精品一区二 | 亚洲电影中文字幕 | av网站免费观看 | 99精品欧美一区二区蜜桃免费 | 亚洲36d大奶网 | 一区二区三区视频在线免费观看 | 国产在线观看av | 欧美一级在线免费观看 | 欧美精品国产一区二区 | jizz在线看片 | 在线观看亚洲专区 | 国产一级一级国产 | 别c我啊嗯国产av一毛片 | 国产精品久久久久久久免费大片 |