毋庸置疑,由于Git允许开发人员能够同时在相同的代码库上工作,因此它在各类软件开发中起到了重要的作用。不过,我们也发现部分开发人员由于未能遵循Git的相关最佳实践(请参见--https://acompiler.com/git-best-practices/),因此导致了各种程序在运行,以及代码调用过程中所暴露出来的棘手问题。下面,我将和您讨论在GIT中,影响代码质量的七项优秀实践,希望能够对您的日常开发项目提供帮助。
1.原子性提交(Atomic Commit)
众所周知:向Git提交内容,就意味着您已经确认了代码的更改,并希望将其作为新的受信任版本,保存到Git存储库中。不过,版本控制系统通常不会限制您提交代码的方式。也就是说,您可以采取如下三种方式中的任何一种:
- 一次性提交上千个更改。
- 提交所有的dll和其他依赖项。
- 将有问题的代码检入存储库中。
可见,此举并不能保证更新代码的一致性,有时甚至会让代码的整体质量有所下降。因此我们需要一些时间来检查代码(请参见-- https://dzone.com/articles/what-is-code-review-and-why-do-you-need-it)。在此,为了保障团队的总体生产力水平,我们可以采用原子性提交(请参见-- https://acompiler.com/git-commands/),例如:在执行原子性提交时,您的某项更改提交可能会涉及多个文件,那么我们应当确保这是全局性的写入,进而避免出现任何不一致的情况。和我们以前熟悉的数据库原子性一样,我们显然需要将其贯彻到针对Git的操作中。
2.明确地说明提交的内容
许多开发人员只是一味地执行更改,提交,以及推送等操作流程,从来不会顾及提交文件的类型和必要性。这样就会导致诸如:dll和pdf等不需要的文件类型,被提交到了存储库中。因此,在将代码检入存储库之前,您可以考虑如下两个问题:
- 您是否确实需要检入所有的文件?
- 它们是否为源代码中必要的部分?
您可以简单地使用.gitignore文件(请参见-- https://acompiler.com/git-commands/),来避免在存储库中出现那些不需要的文件。.gitignore文件既能够为我们提高存储库的清晰度,又有助于我们保持代码的整洁性。据此,您可以自由地提交各种代码文件,那些.dll和.class等自动生成的非必要文件,则会被自动地忽略掉。如果您要同时处理多个存储库,则可以使用全局.gitignore文件,而无需反复地进行添加或推送。
3.掌握各种Git命令
毫无疑问,Git是一个功能强大、且超级实用的工具。如果您能够像对待Linux/Unix操作系统那样,熟练地掌握各种基本的git命令(请参见--https://acompiler.com/git-commands/),那么您就能够更有效地使用该工具,并在操作Git的过程中达到事半功倍的效果。
在使用Git时,您可能会碰到一些语法规则等困难,而Git提供了非常友好的联机帮助。您可以使用“git help+命令名称”从git的bash中了解有关某个Git命令的更多信息。这种快捷的查找方式,几乎含括了您可能用到的所有git命令。
4.梳理工作流程
如果您的团队正在某个Git管理项目上协同工作,那么整个开发团队必须确保并使用相同的工作流程。统一流程无疑会给大家带来如下三项优势:
- 让开发的整个过程更具有条理性。
- 良好的Git工作流程可始终确保分支(branches)处于整洁状态。
- 让团队的沟通更加流畅,并提高输出代码的整体质量。
5.先测试后推送
我们需要在提交代码,或将代码推送到生成环境之前,对各项更改进行充分地测试。过去,我们想方设法阻止项目成员将有缺陷的代码,直接提交的本地存储库中。如今,我们同样需要本着敏捷开发的思想,避免那些有问题的源代码,给在线协作团队造成困扰。在具体实践中,我们需要做到:
- 鼓励整个团队在提交之前,针对其代码的更改部分开展相关的单元测试,这是从根源上避免代码缺陷的流出。
- 如果在构建的过程中,发现了任何代码的错误,应立即终止构建。大家可通过“会诊”的方式,及时修复该错误,以避免此类错误流入Git中,甚至被其他的代码段所调用到。
6.保护主(master)分支
由于Git中的默认分支是master,因此我们需要确保master分支上的代码,能够稳定地处于生产环境之中。您可以通过诸如:前后钩子(pre and post hooks)、以及公司相关策略等多种方式,来保护master分支。此外,您还可以在master分支上启用如下防护措施:
- 确保master分支不会被意外或有意地删除。
- 在master分支上的各种提交历史记录,不应被覆盖掉。
- 在master中,代码不应在未经审查的情况下,被直接检入。
7.分支管理
Git提供了强大的分支模型。您应该将手头的代码保留在与主分支完全隔离的其他分支中。无论您是要添加一个新功能,还是修复一些错误,亦或需要进行重构,都请首先创建一个新的分支。在完成了必要的更改之后,请审查代码,再发出拉取请求,将其合并到主分支中,并保持同步。
小结
上面便是我们在使用Git时,需要遵循的七项优秀实践。当然,为了进一步提高代码质量和整体生产率,您也可以借鉴AFTER技术,具体内容可参考--https://acompiler.com/after-technique/。
【原】7 Best Practices in GIT for Your Code Quality ,作者: Rajeev Bera
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】