<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Git Commit Message 應(yīng)該怎么寫?

      原文鏈接: Git Commit Message 應(yīng)該怎么寫?

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

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

      所以這兩天看了一些如何寫好提交說明的資料,系統(tǒng)地學(xué)習(xí)了一下。雖然團(tuán)隊沒有這方面的要求,但是想要進(jìn)步,得對自己提更高的要求才行。

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

      $ git commit -m "hello world"
      

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

      $ git commit
      

      Commit Message 格式

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

      <Header>
      
      <Body>
      
      <Footer>
      

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

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

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

      type

      type 用于說明 commit 的類別,具體的標(biāo)識如下:

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

      scope

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

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

      subject

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

      Body

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

      Body 部分應(yīng)該說明代碼變動的動機(jī),以及與以前行為的對比。

      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 部分主要用于兩種情況:不兼容變動和處理 Issue。

      不兼容變動

      如果當(dāng)前代碼與上一個版本不兼容,則 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 分為兩種情況,分別是關(guān)聯(lián) Issue 和關(guān)閉 Issue。

      比如本次提交如果和某個 issue 有關(guān)系:

      Issue #1, #2, #3
      

      如果當(dāng)前提交信息解決了某個 issue:

      Close #1, #2, #3
      

      Revert

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

      revert: feat(pencil): add 'graphiteWidth' option
      
      This reverts commit 667ecc1654a317a13331b17617d973392f415f02.
      

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

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

      最后來看一個例子,算是一個總結(jié),至于具體內(nèi)容還是要根據(jù)實(shí)際情況來填寫。

      feat: 添加了分享功能
      
      給每篇博文添加了分享功能
      
      - 添加分享到微博功能
      - 添加分享到微信功能
      - 添加分享到朋友圈功能
      
      Issue #1, #2
      Close #1
      

      插件推薦

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

      可以根據(jù)提示信息直接寫:

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

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

      以上就是本文的全部內(nèi)容,如果覺得還不錯的話歡迎點(diǎn)贊,轉(zhuǎn)發(fā)關(guān)注,感謝支持。


      參考文章:

      推薦閱讀:

      posted @ 2023-04-02 11:19  yongxinz  閱讀(684)  評論(3)    收藏  舉報
      主站蜘蛛池模板: 男人狂桶女人出白浆免费视频| 中文字幕日韩有码一区| 欧美人人妻人人澡人人尤物| 国产av不卡一区二区| 国产一区二区三区小说| 亚洲欧美人成电影在线观看| av色蜜桃一区二区三区| 久久亚洲精品11p| 乱女乱妇熟女熟妇综合网| 亚洲三区在线观看内射后入| 无码国模国产在线观看免费| 国产成人亚洲日韩欧美| 长丰县| 中文字幕无码专区一VA亚洲V专| 欧美午夜小视频| 国产不卡一区二区精品| 久热这里只国产精品视频| 无码人妻精品一区二| 国产免费无遮挡吸奶头视频| 亚洲精品一区二区毛豆| 久久无码专区国产精品| 二区三区国产在线观看| 锡林郭勒盟| 夜夜添无码一区二区三区| 亚洲中文字幕精品久久久久久动漫| 亚洲av成人无码精品电影在线 | 做暖暖视频在线看片免费| 欧美和黑人xxxx猛交视频| 制服 丝袜 亚洲 中文 综合| 极品无码国模国产在线观看| 亚洲成a人片在线视频| 国产毛片基地| 亚洲欧美日韩人成在线播放 | 国厂精品114福利电影免费| 无码人妻精品一区二区三区蜜桃| 91孕妇精品一区二区三区| 沿河| 国产免费一区二区不卡| 城固县| 极品少妇的粉嫩小泬看片| 五月天中文字幕mv在线|