在GitKraken中使用template

最近團隊開始規範 git commit 並且導入 Conventional commit,剛開始不熟悉都會一直要去翻文件,看看到底這時候要用什麼樣的類型,為了加速類別的輸入,可以在 commit 的 template 中設定,今天就來分享一下使用這個規範並且如何有效的套用在 GitKraken 這套工具中。

介紹Conventional commit

這是一個由 angular 團隊推動的 commit message 規範,主要是把每個 commit 做一個分類,分類的好處除了人在看比較輕鬆以外,也是有機會能夠使用工具去拿到某個分類的全部 commit,在 release 時要整理就會比較輕鬆。

目前的類別大概有 feat, fix, build:, chore, ci, docs, style, refactor, perf, test…等,基本上大部分的 commit 應該都能夠被分類到;目前我最常用到的應該是 feat, style, refactor, fix 這幾個,剩下幾個就沒那麼常使用到。

要導入一個規範最好的方法還是用強迫的,那就必須要安裝 commit lint 的套件 config-conventional

1
npm install --save-dev @commitlint/config-conventional @commitlint/cli

使用Git Template

剛剛有說到可以使用套件來作為規範,但初期的時候就是很容易忘記有哪些類別,這時候可以考慮使用 git 的 template 功能,讓我們在 commit 時,能有一個快速的參考,當然這個 template 並不會真的進入到你的 message 中。

接著就來試試看在 git 中加上 template,首先建立一個檔案叫做 .gitmessage ,並且放在 root 底下。

1
2
3
cd ~
touch .gitmessage
vi .gitmessage

接著將 conventional commit 的類別放進去,輸入 i 然後 cmd+v 貼上,這個是我目前使用的內容。

1
2
3
4
5
6
7
8
9
10
11
12
# Conventional Commit Types:
# build
# ci
# chore
# docs
# feat
# fix
# perf
# refactor
# revert
# style
# test

最後把這個檔案指定給 git。

1
git config commit.template .gitmessage

設定 GitKaren

如果你是 CLI 派的,就麻煩這邊左轉離開囉。

使用過的 GUI 工具還蠻多種的,目前就剩下一套 GitKaren 固定在使用,關於這套的介紹建議大家可以去參考 Mike 的文章,畢竟介紹這套工具不是我們今天的重點,今天的重點在於使用了 commit template 以後,怎麼樣更方便的在 GitKaren 中應用。

做完上面的步驟以後,就可以看到在 message 的欄位已經自動帶入所建立的 template。

message template

這時候可以先來試一下 commit 一個檔案,看看結果是什麼。

try a commit

唉~等等!為什麼我們的 template 也跟著進去,這跟我們預期的不同,如果你有 SourceTree 這套 GUI 的話也能夠試試看,結果應該會有點不同。

讓我們試著找找看設定沒有沒地方可以修改,開啟 preference 可以看到下方有一個屬於個別專案的設定,點進去以後將 remove comment from commit messages 打勾即可。

這個地方比較麻煩,還沒找到好的設定可以套用全部,如果你有找到方法,歡迎留言告訴我

preference for repo

remove comment

參考