在軟體或 Web 開發的奇妙世界中,版本控制是每個與其他開發人員一起開發專案的開發人員必須具備的能力之一。 Git 是最常用的版本控制系統之一,它可以幫助開發人員追蹤變更、有效地返回到先前的狀態並作為專案團隊進行工作。但是,只有正確管理提交,Git 才能發揮其作用。在本文中,我們將介紹那些好的和壞的提交,向您解釋最佳實踐,以獲得清晰的、資訊豐富的、有用的提交歷史記錄。
在 Git 中,提交是指程式碼在某一特定時間點的狀態。提交元資料(作者、時間戳記、提交訊息等)。提交用於保存進度、聲明變更以及將已開發的部分與其他工作合併。
原子性和集中性:提交應該是原子性的-它必須代表一個且僅一個邏輯變更。不要在一次提交中混合多個獨立的更改。
例子:
# Good commit
git commit -m "Add user authentication"
# Bad commit
git commit -m "Add user authentication and update UI styles"
描述性提交訊息:描述性提交訊息清楚地解釋了提交的作用以及進行更改的原因。它應該為其他人(以及未來的你)提供足夠的背景,以便在不閱讀程式碼的情況下理解更改。
例子:
# Good commit message
git commit -m "Fix Correct null pointer exception in user login"
# Bad commit message
git commit -m "Fix bug"
遵循傳統提交指南:您可以使用標準提交指南來保持 git 歷史記錄乾淨、一致且易於閱讀。通常這些指南以類型(功能、修復、雜務、重構文件)和簡短摘要的形式進行解釋,偶爾還會有長篇解釋或對其他相關問題的參考。
例子:
# Good commit message following conventional guidelines
git commit -m "feat(auth): add JWT-based authentication"
git commit -m "fix(login): resolve race condition in login flow"
測試和驗證:確保提交中的變更已經過測試並正確執行。損壞/未經測試的程式碼可能會幹擾流程和其他成員。
適當的範圍:適當地確定你的提交範圍。例如,如果您正在開發特定功能或修復錯誤,請確保與該任務相關的所有變更都包含在一次提交中。避免可能使程式碼庫處於不一致狀態的部分變更。
例子:
# Good commit with proper scope
git commit -m "refactor(auth): split auth logic into separate module"
# Bad commit with mixed scope
git commit -m "refactor and minor fixes"
大型且不集中:具有太多更改的提交是一個糟糕的提交。很難理解提交的作用。大型、不集中的提交很難審查和除錯。
例子:
# Bad commit
git commit -m "Update project"
含糊或誤導性訊息:含糊或誤導性的提交訊息不會提供有關更改的有用資訊。缺乏細節可能會導致混亂,並使追蹤變更歷史變得困難。
例子:
# Bad commit message
git commit -m "Stuff"
不相關的更改:將不相關的更改合併到單一提交中會導致很難隔離特定的更改,這可能會引入錯誤並使審核過程複雜化。
例子:
# Bad commit
git commit -m "Update readme and fix login issue"
不完整或未經測試的程式碼:提交不完整或未經測試的程式碼可能會破壞工作流程,給其他團隊成員帶來問題,並可能破壞建置。
缺乏上下文:糟糕的提交通常缺乏上下文,使得很難理解為什麼要進行更改。這可能會導致將來重新存取程式碼時出現混亂和困難。
經常提交,但不要太頻繁:努力在提交太頻繁和提交不夠之間取得平衡。每次提交都應該代表一次有意義的更改。切勿在一次提交中推送不相關的變更。
撰寫清晰且描述性的訊息:您的提交訊息應該解釋提交的作用以及進行更改的原因。
有效使用分支:使用功能分支來實現新功能、錯誤修復和實驗。向這些分支提出拉取請求,專案經理或管理員將審查您的程式碼並將它們合併到主分支中。
審查和壓縮提交:如果您是專案擁有者、領導者、管理員或審查程式碼的人員,則在合併分支之前,請檢視並將小型或修復提交壓縮為邏輯單元。這種做法可以保持提交歷史記錄乾淨且易於遵循。
自動化測試:使用持續整合工具在每次提交時自動測試您的程式碼。這可確保您的變更得到驗證並降低引入錯誤的風險。
使用 Husky:使用像 husky 這樣的函式庫可以提升你的 git 技能。如果您違反了 husky 中配置的規則,它不允許提交。
良好的提交對於在 Git 中維護清晰且易於理解的專案歷史記錄非常重要。透過遵循最佳實踐(例如保持提交原子性、編寫描述性訊息以及確保測試變更),您可以改善協作並使您的專案超級可維護。管理良好的提交歷史記錄對於未來的自己、團隊或新合作者來說是寶貴的資源。
透過遵循上述準則,您將使參與專案的每個人都更容易理解、審查和建立您的工作。快樂承諾!
原文出處:https://dev.to/sheraz4194/good-commit-vs-bad-commit-best-practices-for-git-1plc