Reviewbot 開源 | 有些 git commit 記錄真的不敢恭維, 我推薦每位工程師都常用 git rebase 和 git commit --amend

大卡尔發表於2024-11-18

Reviewbot 是七牛雲開源的一個專案,旨在提供一個自託管的程式碼審查服務, 方便做 code review/靜態檢查, 以及自定義工程規範的落地。


在日常的程式設計協作中,Git commit 記錄的質量往往反映了一個工程師的工程素養。然而,我經常能看到一些不太規範的 commit 記錄。有時,真的不敢恭維。

比如這種:

這種大機率是提交 commit 之後,又有變動,就隨手重新複用上一條 git commit 命令了。

這種記錄如果出現在個人倉庫,可能還好. 但如果是多人協作的倉庫,就有點不專業了。

在我看來,這些 commit 記錄完全沒必要,是非常不好的習慣,完全可以避免。

好在 Git 為我們提供了優雅的解決方案。如果沒必要生成新的 commit,那直接使用 git commit --amend 就可以避免。

少用 git merge 多用 git rebase

比如這種:

Merge branch 'feature-A' of https://github.com/qiniu/reviewbot into feature-B

說的是把遠端分支 feature-A 的程式碼合併到 feature-B 裡。這裡的 feature-A 通常是主分支。

這種 Commit 資訊如果出現在你的 PR 裡,那是完全沒必要。PR 裡的 commit 資訊應當僅包含針對本次改動的有用資訊。

我個人日常幾乎不使用 git merge,即使是為了同步遠端分支,我一般都會使用 git rebase

比如:

git rebase 除了上述好處外,還可以保持主倉庫的 commit history 非常乾淨。所以強烈推薦大家使用。

Reviewbot 的 git commit check

為了更好的規範上述兩種行為,Reviewbot 也新增了 git commit check 能力,就是用來檢查 git commit 記錄是否符合規範的。

如果不符合規範,Reviewbot 就會提示你:

更多 git flow 使用規範和技巧

當然 git 操作其實有很多實用技巧,建議大家有興趣的話可以去研究下。我在 1024 實訓營的時候,有給同學們做個相關分享:

超實用! 從使用視角的 Git 協作實戰,告別死記硬背

文件裡面有影片連結,感興趣的同學可以去看下。

最後,作為專業的工程師,我們應該始終追求卓越的工程實踐。良好的 commit 記錄不僅體現了個人的專業素養,更是提升團隊協作效率的重要基石。

透過合理使用 git rebase 和 git commit --amend,我們可以維護一個更清晰、更專業的程式碼提交歷史。這不僅讓程式碼審查變得更加輕鬆,也為後續的程式碼維護和問題追蹤帶來極大便利。

你覺得呢?

相關文章