詳解如何使用Angular規範來統一多人的git提交記錄

2021-01-19 做前端的蝸牛

前言

程式設計師在開發完代碼後都需要向代碼倉庫提交代碼,通常我們會使用下面的Git命令

git commit -m '此次代碼的說明'

但是很多時候我們都沒有一個統一的約定去規範commit描述,這就導致提交的歷史信息不能被很好查閱而且也不容易辨認commit信息與代碼變動之間的聯繫。

這篇文章我們聊一下Augular提交規範。

圖1

工具——commitizen

首先我們全局安裝一下commitizen,

npm install commitizen -g

下一步建一個github倉庫做測試,首先在倉庫中執行如下命令,

npm init

上面的命令不能跳過,然後再在倉庫中運行下面的命令,

commitizen init cz-conventional-changelog --save-dev --save-exact

如果你用yarn,也可以用下面的命令

commitizen init cz-conventional-changelog --yarn --dev --exact

上面的命令為你做了三件事

(1)安裝cz-conventional-changelog適配npm module;

(2)將cz-conventional-changelog保存在了package.json的dependencies或者devDependencies中;

(3)在package.json中添加了一個配置,如下:

圖2

圖2中的配置主要是為了告訴Commitizen當開發者向倉庫提交代碼時使用哪一個適配器。

commitizen.path主要通過require.resolve解析路徑,它支持以下幾種路徑寫法,

(1)npm包;

(2)包含index.js文件的文件夾,文件夾路徑相對命令執行目錄;

(3)js文件,文件路徑相對命令執行目錄;

(4)完全相對路徑;

(5)絕對路徑。

完成以上工作,我們來嘗試提交一下代碼,提交代碼時需要把git commit命令替換成git cz,看看會發生什麼?

圖3

如圖3,git cz命令直接彈出了一個交互選項,我們來看看都代表什麼意思?

(1)feat代表新功能;

(2)fix代表修復bug;

(3)docs代表修復文檔;

(4)style代表代碼格式變化;

(5)refactor代表代碼重構;

(6)perf代表性能優化;

(7)test代表修改或者增加測試;

(8)revert代表回退到之前的一個commit;

(9)build代表對構建流的修改;

(10)ci代表ci的一些配置還有一些腳本的修改;

(11)chore代表非原始碼src和測試文件的修改。

Commitizen為我們羅列了11種提交場景,非常的細,換句話說咱們後面不能把所有的代碼修改都放在一個commit中,需要按照以上場景逐次提交。

下面我們繼續操作!

圖4

如圖4,Commitizen除了會詢問你的提交類型,還會讓你告知它其他信息,

(1)本次修改的範圍,可以填寫組件名字或者文件名,也可以直接跳過;

(2)寫一個簡短的描述,主要是在github的code tab下展示;

(3)寫一個詳細的修改描述;

(4)詢問開發者有沒有重大修改;

(5)如果有重大修改,描述一下;沒有就跳過;

(6)詢問本次修改是否影響打開中的issue;

(7)如果影響issue,可以寫fix #123,closes #123 等等。

完成這些信息填寫,就可以把代碼提交上去了,效果如下:

圖5

到目前為止,我們成功使用Commitizen完成了代碼的提交。步驟很簡單,而且每一步Commitizen都會有提示,很貼心,如果你英文不是太差,基本都能看的懂。

總結

從以上介紹可以看出Commitizen將代碼提交的場景劃分的很細,而且規範了提交的描述。對於多人開發的倉庫,可以做到格式統一,好處不言而喻。下篇文章我們接著介紹Commitizen的其他功能。

喜歡我的文章就關注我吧,有問題可以發表評論,我們一起學習,共同成長!

相關焦點

  • Git使用全解
    當然這是git對於多人開發的巨大作用個人使用git最大的作用——把它當成了一個雲同步的伺服器不過實際開發還是很有用的呢實操軟體方法分為本地和伺服器的配置伺服器不同,本地的配置也不同,所以先選擇伺服器git add如果後面加一個點,就是把所有文件的修改內容放到緩存區反之可以只提交一個文件的修改內容到緩存區git可以記錄下來每一次緩存區的內容因為緩存區的就是每一次文件是如何修改的一方面有利於快速把最新更新上傳到伺服器
  • 我到底應該用git-merge還是git-rebase呢?
    本文一共3165字,將通俗的解釋git中兩種合併策略——merge和rebase的不同、運用方式和使用的場景,並輔以我在工作中的運用來介紹;什麼是git merge?它有以下幾點用途:合併提交記錄,比如說對於我們拉取出來的開發分支,可能會在開發過程中多次提交測試,會產生很多不規範的、不必要的提交,這類提交將會造成我們的分支汙染,當出現問題需要回退時,將增加難度。
  • Git入門篇:常用命令以及遠程倉庫使用
    遠程倉庫:配有專用的伺服器,為了多人共享而建立的倉庫。使用log命令,我們可以在倉庫的提交記錄看到新的提交。$ git logpush到遠程倉庫前面我們為大家介紹了本地倉庫的基本使用方法。下面,我們接著為大家講解如何在遠程倉庫上共享本地倉庫的修改記錄。
  • 使用Spring Boot,Angular 6和Maven構建Web應用程式
    使用Maven 組合Spring Boot和Angular可能是一項具有挑戰性的任務。在這篇文章中,我們將使用Spring Boot和Angular 6創建一個簡單的Web應用程式,並將它們打包在一個war文件中。創建Maven項目首先,創建一個包含兩個模塊的Maven項目:一個用於後端,另一個用於前端。
  • 從工作到現在Git操作總結
    寫在前面你使用過 Git 嗎?或許你還未接觸過Git,或許你已經使用了一段時間,但它或許仍然令你困惑。本文主要講解自己學習Git的方法以及解決自己遇見的各種Git問題。首先強烈給大家推薦掘金小冊 Git 原理詳解及實用指南。
  • Pycharm上Git安裝和使用(程式設計師必備)
    個人認為,作為一名程式設計師,學會使用和利用好GitHub這個非常方便的工具非常必要,Git可以非常方便的上傳和下載你的代碼,特別作為初學者,你可以把平常練習的代碼和筆記統統放在GitHub上面,對你們找以後工作和程序調用非常有幫助。這是你的能力的證明和學習歷程的記錄。
  • 這7個常用Git命令或概念你都知道嗎?
    以「; 」(分號)分隔的多個git命令以分號分隔可使用多個Git命令:$ git --version; git branch // separated by semi-colon2.git別名命令命令別名能提高可重用性
  • git的幾個常用基本操作
    需求一:如何把stage中的修改還原到work dir中這個需求很常見,也很重要,比如我先將當前work dir中的修改添加到stage中,然後又對work dir中的文件進行了修改,但是又後悔了,如何把work dir中的全部或部分文件還原成stage中的樣子呢?
  • Git代碼託管,如何選擇和使用,關鍵點都在這了
    4,騰訊工蜂社區版騰訊工蜂社區版免費使用,另有騰訊雲CODING DevOps服務中包含的代碼託管服務,5人以下團隊免費使用。二,常用命令只需掌握常用的8個命令,就能熟練高效的管理代碼。git mergegit rebasegit resetgit revertgit cherry-pickgit fetch
  • 學法時間 | 微信記錄作為證據如何提交法院才規範?
    學法時間 | 微信記錄作為證據如何提交法院才規範?微信的記錄可以作為證據嗎?對於這個問題,答案是確定、認定以及肯定的可以,關鍵在於咱們怎麼把微信記錄以法院認可的形式提交上去,因此,本文來給大家梳理一下以微信記錄為證據的時候,咱們應該怎麼做法院才會認可。
  • git fetch & pull詳解
    而git pull 則是將遠程主機的最新內容拉下來後直接合併,即:git pull = git fetch + git merge,這樣可能會產生衝突,需要手動解決。下面我們來詳細了解一下git fetch 和git pull 的用法。
  • 工作流一目了然,看小姐姐用動圖展示10大Git命令
    儘管 Git 是一款非常強大的工具,但如果我說 Git 用起來簡直是噩夢,大多數人也會認同我的說法。我發現在使用 Git 時,在頭腦裡可視化地想像它會非常有用:當我執行一個特定命令時,這些分支會如何交互,又會怎樣影響歷史記錄?
  • 前端面試題:git reset、git revert 和 git checkout 有什麼區別
    作區:在 git 管理下的正常錄都算是作區,我們平時的編輯作都是在作區完成 暫存區:臨時區,存放將要提交件的快照 ;歷史記錄區:git commit 後的記錄區 ;三個區的轉換關係以及轉換所使的命令如下圖git reset、git revert 和 git checkout的共同點:來撤銷代碼倉庫中的某些更改。
  • 部分克隆實現Git大文件倉庫的優雅管理
    還有一個比較優雅的辦法就是使用部分克隆(Partial Clone)部分克隆Git的一項新功能,它用來取代了Git LFS,並通過控制Git下載(或者跳過)部分Git倉庫對象(快照)的方法從根本來是實現對大文件的管理。
  • 跟蹤多個 Git 遠程倉庫
    換句話說,upstream 指的是公開提交工作的上遊倉庫,而 origin 指的是你對上遊倉庫的本地復刻,例如,你從這裡生成拉取請求pull request(PR)。2、接下來,你必須獲得一個統一資源標識符 (URI),以便通過 SSH 進行克隆cloning。在大多數 Git 託管服務上,比如 GitLab 或 GitHub,它在一個標有 「Clone」 或 「Clone over SSH」 的按鈕或面板上,可以將克隆 URI 複製到剪貼板中。
  • 程式設計師需要了解的8種Git技術
    要克隆存儲庫,請運行git clone命令,然後輸入存儲庫的路徑:git clone http s://XXXXXX/test/my_git_project.git每當克隆存儲庫時,都可以選擇多種協議來連接到源。
  • 玩轉Git就這麼簡單!這些常用命令你確定都用過嗎?
    git add,暫存區目錄樹更新,工作區修改【或新增】的文件內容被寫入到對象庫的一個新對象中,而該對象的ID被記錄在暫存區的文件索引中。git commit,暫存區的目錄樹寫到版本庫(對象庫)中,master 分支會做相應的更新。即 master 指向的目錄樹就是提交時暫存區的目錄樹。
  • 使用 Angular2+ 開發 Markdown 編輯器
    然後使用下面的命令來安裝 Angular/Cli,我們是通過 Angular/Cli 進行項目的管理。npm install -g @angular/cli如果你已經安裝過老版本的 Angular/Cli,建議你使用下面的命令,升級到最新的版本。
  • git解決衝突操作 - CSDN
    下面我們來一起學習git操作,相信我這對你來說並不難。一、Git原理1、Git是什麼?Git管理:屬於分布式版本控制系統,根本沒有「中央伺服器」,安全性高,每個人的電腦上都是一個完整的版本庫,即電腦硬碟上會有個版本這樣
  • Git基礎知識總結
    git add filepath/* # 刪除指定目錄以及目錄下的所有文件和子目錄 git rm -r filepath/ # 提交 git commit -m "提交注釋" # 拉取遠程分支代碼 git pull