iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 7
0
自我挑戰組

Re : 從懶開始的自動化生活系列 第 7

[D7] : Git Template跟自動化有關係?

電腦裝過Git後,就會有一個 .gitconfig 檔案,裡面除了記載了你的基本資料外,也可以記載你的預設 git template路徑。

對的今天文章主角:Git Template

所謂預設的Git Template即以後新的新的專案Clone下來後,都會套上這份git設定。
而假若原本專案有使用HuskyHuskyTemplate重疊的設定,Husky會選擇不覆蓋。

舉例

打個比方,我們有pre-commit,pre-push兩份模板作為預設的git-hooks

git-clone了一個新專案下來時,假設新專案本身有在使用Husky,這專案的Huskycommit-msgpre-push兩份檔案。

那麼順序會是這樣運作:git-clone下來時執行了git-init因此會把git-template搬一份過去專案底下,接著往後執行到Husky(npm install)時,重疊的檔案名就不會做任何動作,因此上面的情況來說pre-push檔仍舊會是git-template的。

緣由

我用這方法訂製了屬於我自己的個人化commit規則,我用它來強迫我在每次push前檢查我的commit堆中有沒有任一fix/test/refactor前綴的commit,這前綴的故事請閱讀這篇,目的是希望自己不要不斷新功能(feat),而忘了寫測試,重構,修復Bug,導致產品逐漸失去穩定度。

並且自動套用到每一個專案上面去,只要是有跑過git-init的專案都會遵循同樣規則。

我藉此達到我自動化的一項實作,但要注意不得與團隊共識相違背,也因此我才去研究了Template的特性。

主要步驟:

1.

在一個自己滿意的地方建立一個資料夾,作為存放git-template的資料夾
假設你的資料夾叫做.git-templates
接著我們去.gitconfig檔上面加上一段,

即以後git init時,會自動取這個路徑底下的資料作為預設檔。

2.

接著我們回到剛剛那個git-template的資料夾,在裡面建立一個hooks資料夾,裡面存放我們想要做為預設的git-Hooks檔案。
可以參考我的結構,我是放在User底下

3.

往後clone專案,就可以得到屬於自己的git設定了。
不建議刪掉.git重新git init哦,該專案local history會全部消失,psuh上去重新clone會是比較好的作法。


上一篇
[D6] : Restrict commit on specific branch
下一篇
[D8] : 利用GitLab CI達成減少Build與Test的成本
系列文
Re : 從懶開始的自動化生活30

尚未有邦友留言

立即登入留言