好的提交✔ VS. 坏的提交❌:Git 的最佳实践

2025-03-16

在软件或 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 历史记录干净、一致且易于阅读。通常这些指南以类型(feat、fix、chore、重构文档)和简短摘要的形式解释,偶尔还会加上对其他相关问题的长篇解释或 REF。
示例:

# 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"

不完整或未经测试的代码:提交不完整或未经测试的代码可能会扰乱工作流程,给其他团队成员带来问题,甚至可能破坏构建。
缺乏上下文:错误的提交通常缺乏上下文,很难理解为什么要进行更改。这可能会导致将来重新查看代码时出现混乱和困难。

良好提交的最佳实践

  1. 经常提交,但不要太频繁:努力在提交太频繁和提交不够之间取得平衡。每次提交都应代表有意义的更改。切勿在一次提交中推送不相关的更改。

  2. 编写清晰且描述性的信息:您的提交信息应该解释提交的作用以及您进行更改的原因。

  3. 有效使用分支:使用功能分支来添加新功能、修复错误和进行实验。针对这些分支提出拉取请求,项目经理或管理员将审查您的代码并将其合并到主代码中。

  4. 审查并压缩提交:如果您是项目所有者、领导、管理员或负责审查代码的人员,请在合并分支之前审查并压缩小提交或修复提交到逻辑单元中。这种做法可使提交历史保持清晰且易于跟踪。

  5. 自动测试:使用持续集成工具在每次提交时自动测试代码。这可确保您的更改得到验证,并降低引入错误的风险。

  6. 使用 Husky:使用像 Husky 这样的库可以提高你的 git 技能。如果你违反了 Husky 中配置的规则,它将不允许提交。

结论

良好的提交对于在 Git 中维护清晰易懂的项目历史记录非常重要。通过遵循最佳实践(例如保持提交的原子性、编写描述性消息以及确保更改经过测试),您可以改善协作并使项目超级易于维护。管理良好的提交历史记录对于您未来的自己、您的团队或新合作者来说都是宝贵的资源。

通过遵循上述准则,您将使参与项目的每个人都能更轻松地理解、审查和借鉴您的工作。祝您工作顺利!

PREV
值得尝试的 17 个最佳开发人员生产力工具
NEXT
告别 Try-Catch 块:迎接 JavaScript 的安全赋值运算符提案