首页 > web前端 > js教程 > 做出小承诺

做出小承诺

Patricia Arquette
发布: 2025-01-03 20:21:43
原创
231 人浏览过

当谈到版本控制时,我主张进行许多小的、集中的提交,而不是大型的提交。

只要我还活着,我就会为地球做出微小的改变。
— 受惊的兔子

最佳实践:微小的改变累积起来

目标不仅仅是让承诺变小,而是让它们集中且有目的。每次提交都应该代表对代码库的一次逻辑更改。

在一天结束时,我们可能会做出相同的更改,但是小的提交可以帮助我们管理时间并确保正确完成任务,同时为未来留下有用的信息。

  • 将大型项目分解为较小的任务。这是一种传统的项目管理技能,是充分利用时间并取得成功成果的关键部分。帕金森定律表明,任务会随着分配的时间而扩展,因此能够识别更多、更小的任务有助于限制时间的流逝。

  • 思考任务如何转化为描述性提交消息。如果任务或消息重叠或相似,您可以合并这些任务吗?如果不是,请找出关键差异以区分它们。 专业提示:如果您的提交消息中出现“和”一词,或者需要多个句子来解释,您的提交应该被拆分。

  • 确保您的提交使项目处于工作状态。虽然并不总是可行,但当多个开发人员在单个存储库上工作时,该指南确实很有帮助。当我们让项目正常运行时,我们可以更频繁地创建和合并分支并限制冲突。而且,如果您需要回滚更改,您更有可能保持应用程序正常运行。

  • 在提交之前检查您自己的更改以确保重点。有时我们会发现机会主义的变化或忽视了首要任务。虽然我们不想丢失这些见解和更新,但有多种方法可以隔离版本控制工具和 IDE 中的更改,以保持提交的不同。

一致性

随着提交数量的增加,很难让您的提交保持有意义。为了清晰和一致性,考虑采用像常规提交这样的风格。

好处

小型提交的好处在几个关键领域变得显而易见:

更轻松的代码审查

小而集中的提交更容易理解和验证。审阅者可以单独查看不同的提交,并专注于每个较小工作单元的相关细节。

较小的提交可以降低审稿人疲劳的风险并产生更高的整体质量。

让一个程序员检查 10 行代码,他会发现 10 个问题。让他做500行,他会说看起来不错。
– 吉雷·厄齐尔

<script> // Detect dark theme var iframe = document.getElementById('tweet-306836785739210752-603'); if (document.body.className.includes('dark-theme')) { iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=306836785739210752&theme=dark" } </script>

更好的调试

小提交可以更轻松地识别问题的引入位置。通过精细提交,您可以更有效地使用 git bisect 等工具来查明问题。一旦发现缺陷,小的提交可以帮助我们限制更改现有代码的风险和测试范围。

清洁历史

每次提交都应该讲述一个关于单个更改的故事。当提交量很小时,这个故事对于未来的开发者(包括你自己)来说会变得更清晰、更有意义。

随着项目年龄的增加,提交历史记录可以告诉我们所采取和放弃的路径、已解决的错误以及需要注意的风险。提交消息越好、越具体,就越容易理解项目历史。

更安全的合并

当提交较小时,不仅会降低因重叠更改而导致合并冲突的风险,而且更容易解决较小更改的冲突。

更安全的回滚

如前所述,如果出现问题,回滚小提交的风险比尝试撤消大块互连更改的风险要小。

降低风险

未提交的代码就像有未保存的文档。一行代码被修改和被签入之间的时间越长,丢失该更改的机会就越大。意外删除;覆盖;在切换分支之前未能存储更改;重置分支而不是文件...我们可能会通过多种方式丢失工作。

我是像 Git 这样的现代版本控制,分支实际上是免费的。虽然 git stash 在紧要关头可能很有用,但它需要几乎相同的努力来创建一个临时分支,如果它最终有价值的话,可以将其合并到功能或维护分支中。

提交的更改可以推送到服务器上存储库的分支或分支,允许其他人协作查看和处理它们,并确保您的区域设置系统不会出现单点故障,从而导致您的工作损失。

你应该挤压吗?

在功能分支中创建许多小提交时,可能需要在最后将它们压缩为单个提交,最好使用拉取请求,这样您就不会丢失在代码审查期间非常有用的离散历史记录。

我更喜欢保留历史记录,但这也取决于这些合并的范围和频率。

主题,而不是事物

我们通常不需要最终体现出每一个小的变化,但是如果提交不共享一个主旨——一个单一的总体主题——那么它们可能不应该被压制一起。

Make Small Commits

这与清洁历史福利相关。在工作进行时,这些单独的消息可能会让代码审查中更容易发现错误或不一致之处:

refactor: JIRA-12345 - Replace guards with optional chaining
refactor: JIRA-12354 - Replace logical OR with nullish coalescing 
登录后复制

一旦工作经过验证并准备好合并,单个压缩的提交就可以代表它们:

refactor: JIRA-12345 - ES2020 update
登录后复制

早打壁球,经常打壁球

如果您的分支包含许多重构提交,请在对项目进行其他工作之前考虑合并和压缩这些提交。这使得重构能够在更广泛的历史中被表示为单个提交,同时与项目工作保持分离。

这进一步将不同任务的风险隔离到单独的历史条目中,并鼓励缩短分支生命周期,因此

结论

如果您不习惯这种风格,可能需要适应,但是小的提交可以帮助提高您的代码质量和开发过程。

练习创建较小的提交。与几乎所有版本控制一样,您今天的工作回报将为您自己和其他人带来好处,但那一天可能会比您预期的更早到来。

以上是做出小承诺的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板