在新的公司裡面,對於commit 還有分支其實是沒啥規範的,如果我資策會剛畢業,應該會覺得這家公司沒有規範,但我現在會覺得不規範可能也是好事,畢竟我實際去工作時,真的會去翻commit 的次數少之又少。
但時間久了發現這樣也有些問題,比如說我會有很多commit 是
|
|
這種基本上沒啥用的資訊,我看了也會有點不好意思,再加上之前有同事問我這段code改了什麼,結果我只有寫一個「錯誤修正」就commit出去了,當下還是有點難堪的。
後來曾經有段時間想要認真把commit 內容寫一下,但有時候又沒什麼好靈感,不知道寫什麼,心裡就想著
「ChatGPT這麼屌,怎麼不讓他來幫我寫 commit 」
無獨有偶,網路上就有一位大神寫了個lib,可以用來產生git commit 的內容
用 ChatGPT 自動幫開發者產生 Commit Message
安裝
安裝方式在GIthub的README中有連結
|
|
安裝好後可以輸入
|
|
來查看版本
設定
Codegpt 安裝完後需要設定一些參數,比如說openAI的token,這部分就需要花新台幣購買,我是買5鎂的token來用,目前用了快一個月,大概消耗0.2鎂而已,相當划算
https://platform.openai.com/settings/organization/general
設定api key
|
|
然後還有一些設定,可以在
|
|
中設定,比如說
設定commit 語言
|
|
設定git_diff的行數
|
|
這參數會決定codegpt會幫你產生的comit訊息的準確度,像藍色的部分就是抓5行的code,所以可能會包括你沒寫的內容,而選擇1的話就是紅色的部分,會產生較為精準的commit (參照before & after)
使用
使用
|
|
自動產生commit訊息
或是輸入
|
|
來預覽
當然也可以透過git hook來使用
使用GitHook來調用codegpt(不推薦)
輸入安裝
|
|
輸入解除安裝
|
|
這個指令會在你專案的 .git/hooks底下產生一個 prepare-commit-msg
內容如下
|
|
如此一來,我們每次輸入
git commit 時,就會自動呼叫codegpt幫我們產生commit 了
但這其實有個問題,prepare-commit-msg這個hook,會在所有執行git commit的操作後執行,當然也包刮pull跟merge,像這些時候我們是不需要調用codegpt 的功能的,但我研究了一下git hook發現沒有這個功能,經過了幾天的研究,發現要滿足我的需求只能透過bash alias,詳見下篇
- 當我需要時才調用codegpt commit,我也要保留 git commit 的功能
- merge跟pull時都不要調用codegpt
- 我要能夠編輯codegpt 的commit內容,不能直接幫我儲存
將codegpt 做成alias 來調用codegpt(推薦)
編輯 bashrc
|
|
將這段複製上去
|
|
然後儲存,回到terminal中重新刷新
|
|
如此一來當
|
|
後,就能夠輸入
|
|
來執行codegpt了喔