Reviewbot 開源 | 有些同學的 git commit 記錄真的不敢恭維, 我推薦每位工程師都常用 git rebase 和 git commit --amend
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,我們可以維護一個更清晰、更專業的程式碼提交歷史。這不僅讓程式碼審查變得更加輕鬆,也為後續的程式碼維護和問題追蹤帶來極大便利。
你覺得呢?
相關文章
- Reviewbot 開源 | 有些 git commit 記錄真的不敢恭維, 我推薦每位工程師都常用 git rebase 和 git commit --amendViewGitMIT工程師
- git commit --amendGitMIT
- 撤銷 git commit --amendGitMIT
- 撤銷 git commit –amendGitMIT
- git如何清空所有的commit記錄GitMIT
- git commit後如何取消commitGitMIT
- git 工作流和git commit規範GitMIT
- 關於Git commitGitMIT
- Git拆分commit提交GitMIT
- git commit 規範GitMIT
- Git commit規範GitMIT
- Git插入新的commitGitMIT
- Git commit 之後,想撤銷 commitGitMIT
- Git Commit 標準化GitMIT
- git修改commit註釋GitMIT
- Git刪除指定commitGitMIT
- Git commit message 規範GitMIT
- git 修改 commit 資訊GitMIT
- 如何修改git commit message?GitMIT
- 使用 Git 撤銷 Commit,但未 Git Push 的命令GitMIT
- Git 合併指定的commitGitMIT
- git分支管理及git commit message規範GitMIT
- git rebase 和 git mergeGit
- git commit 的正確姿勢GitMIT
- git 中撤銷已commit 的GitMIT
- git 修改已有commit的提交日期GitMIT
- git commit提交空內容GitMIT
- Git修改commit提交資訊GitMIT
- [Git CLion] 規範Commit格式GitMIT
- git hooks之——pre-commitGitHookMIT
- git學習之git rebaseGit
- git rebase(變基)—— Git 學習筆記 19Git筆記
- 『現學現忘』Git物件 — 17、Commit物件Git物件MIT
- Git 修改已提交的commit註釋GitMIT
- git專案之間的commit同步GitMIT
- [Git] Git整理(四) git rebase 的使用Git
- Go:git gofmt pre-commit hookGoGitMITHook
- Git檢視指定commit資訊GitMIT