如何才能最好地使用 GitHub 管理项目?

如何才能最好地使用 GitHub 管理项目,本文提供了具有可操作性的GitHub 十大最佳实践。


image.png | left | 747x374

GitHub 十大最佳实践

10.保护主要分支免受直接提交

主分支中的任何内容都应该是可部署的,这就是为什么你不应该直接提交默认分支以及为什么Gitflow工作流已成为标准。使用分支保护可以帮助您防止直接提交,当然,所有内容都应该通过拉取请求进行管理。

image | left | 480x308

9.避免无法识别的提交者

也许您正在开发一个新环境,或者您没有注意到您的Git配置不正确导致用户使用错误的电子邮件地址提交代码。现在,他们的提交与正确的用户无关,并且几乎不可能追溯谁写了什么。

确保您的Git客户端配置了正确的电子邮件地址并链接到您的GitHub用户。在代码审查期间检查您的拉取请求是否存在无法识别的提交。

image | left | 600x180

8.为每个存储库定义CODEOWNERS

使用CODEOWNERS功能可以定义哪些团队和人员被自动选为存储库的审阅者。此功能会自动请求存储库所有者进行审核。如今,组织拥有数十个(如果不是数百个)存储库,而CODEOWNERS可以选择定义组织中的repo维护者。

image | left | 718x322

7.从源代码中分离秘密凭证

在构建Cloud Native应用程序时,我们保护了许多秘密 – 帐户密码,API密钥,私人令牌和SSH密钥。决不能将任何秘密提交到您的代码中。而是使用从安全存储外部注入的环境变量。

您可以使用VaultAWS Secrets Manager等工具来帮助您进行生产中的秘密管理。

有许多很棒的工具可以识别代码中的现有机密并防止新机密。例如,Git-secrets可以帮助您识别代码中的密码。使用Git Hooks,您可以构建一个预提交钩子并检查每个拉取请求的秘密。

image | left | 599x258

6.避免将依赖项提交到项目中

将依赖项推送到远程源将增加存储库大小。删除存储库中包含的所有项目依赖项,并让包管理器在每个构建中下载它们。如果你害怕“依赖性可用性”,你应该考虑使用像JfrogNexus Repository这样的二进制存储库管理器解决方案。查看GitHub的Git-Sizer

5.从源代码中分离配置文件

我们强烈建议您不要将本地配置文件提交到版本控制。通常,这些是您不想推送到远程的私有配置文件,因为它们包含秘密,个人偏好,历史记录或一般信息,这些信息应仅保留在您的本地环境中。

4.为项目创建有意义的.gitignore文件

每个存储库中都必须使用.gitignore文件来忽略预定义的文件和目录。它将帮助您防止代码中的密钥被提交泄露,依赖项和许多其他可能的差异。您可以从Gitignore.io中选择相关模板。

image | left | 640x456

3.存档死存储库

随着时间的推移,由于各种原因,我们发现自己拥有无法维护的存储库。也许你为一个临时用例打开了一个新的存储库(或者你想要POC一个新技术),或者你有一些包含旧的和不相关的代码的存储库。问题是相同的 – 这些存储库在达到其目的后不再被积极开发,因此您不希望维护它们或其他人将依赖/使用它们。最佳实践将始终归档这些存储库,这将使它们对每个人“只读”。

image | left | 480x281

2.锁定包版本

您的清单文件包含有关所有软件包版本的信息,以便在每次安装应用程序依赖项时不会破坏代码的情况下保持一致的结果。最佳做法是使用清单锁定文件以避免任何差异,并确认每次都获得相同的软件包版本。相反的是,您的代码组件版本不精确,不确定将在下一个版本中安装哪个版本,并且您的代码可能会中断。

image | left | 640x454

1.对齐包版本

虽然您使用的是相同的软件包,但不同的版本分发将使在各种项目中重用代码和测试变得更加困难。

如果您有一个在多个项目中使用的包,请至少尝试在不同的存储库中使用相同的主要版本。

image | left | 640x356

您所有组织的存储库是否与上述最佳实践一致?  

及时了解所有开发标准的最佳实践是非常棘手的。您必须无休止地努力研究,测试和验证多种资源。让人惊讶。

所以,我们为你做了。别客气。

在扫描了数千个存储库并访问了数百个客户之后,我们创建了一个常用最佳实践列表,我们强烈建议在每个现代软件开发组织中采用这些最佳实践。

剩下的工作就是逐个检查每个存储库中的每个上述最佳实践。

或者保存您的理智并与datree的GitHub应用程序连接以扫描您的存储库并生成您的免费状态报告,以评估您的组织的存储库是否与基本最佳实践一致。

打赏作者

说点什么

发表评论

  Subscribe  
提醒
%d 博主赞过: