博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用GitHub的十个最佳实践
阅读量:6231 次
发布时间:2019-06-21

本文共 1423 字,大约阅读时间需要 4 分钟。

9.保护主分支,不要在其上直接提交代码

主分支中的任何内容都应该是可部署的,所以不应该直接在默认分支上提交代码,而且Gitflow工作流已成为标准。使用分支保护可以防止直接提交代码,当然,所有内容都应该通过pr进行管理。

\"\"

8. 避免无法识别的提交

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

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

\"\"

7. 为每个存储库定义codeowners

使用codeowners功能可以定义哪些团队和人员被自动选为存储库的reviewer。该功能会自动请求存储库owner进行审核。现在,组织动辄有数十个存储库,codeowners可以从整个组织中选择定义repo的维护者。

\"\"

6. 将源代码和secret凭证分离开

在构建Cloud Native应用时,我们保护了许多secret - 帐户密码,API密钥,私人令牌和SSH密钥。 千万不要将任何secret提交到代码中。可以使用从安全存储外部注入的环境变量。

你可以使用Vault和AWS Secrets Manager等工具来帮助在生产环境中进行secret管理。

有许多很棒的工具可以识别代码中现有的secret并防止出现新的secret。例如,Git-secrets可以帮助识别代码中的密码。使用Git Hooks可以构建一个预提交hook并检查每个pr的secret。

\"\"

5. 避免在项目中提交依赖

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

4. 将源代码和配置文件分离开

强烈建议不要将本地配置文件提交到版本控制中。 通常,本地配置文件包含secret,个人偏好,历史记录等私有配置文件,你是不会想将其推送到远程的。这些信息应当只保留在本地环境中。

3. 为项目创建一个有意义的.gitignore文件

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

\"\"

2. 归档不再维护的库

随着时间的推移,由于各种原因,我们的存储库可能已经无法维护了。也许你为一个临时用例打开了一个新的存储库(或者你想要POC一个新技术),或者你有一些包含旧的/不相关代码的存储库。 问题是相同的:这些存储库在达到目的之后不再被积极开发,你也不想再维护它们。最佳实践是归档这些存储库,设置为“只读”模式。

\"\"

1. 锁住包版本

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

0. 对齐包版本

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

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

\"\"

原文链接:

转载地址:http://xtxna.baihongyu.com/

你可能感兴趣的文章
解决微信多域名授权微信网页授权订阅号借用授权无公众号代授权
查看>>
Python日志产生器
查看>>
Java——内部类(inner class)
查看>>
【NOI 2009】诗人小G
查看>>
(九)ASP.NET自定义用户控件(2)
查看>>
真机调试出现错误 No provisioning profiles found: No non–expired provisioning profiles were f...
查看>>
窗体的置顶显示
查看>>
第五次作业(团队作业)
查看>>
URL重定向之一.htaccess文件和AllowOverride指令
查看>>
Dedecms去掉网站底部powered by dedecms 的方法
查看>>
2017中国大学生程序设计竞赛-哈尔滨站 A - Palindrome
查看>>
数组求和函数
查看>>
Pos管理类库的第三方库
查看>>
在局域网中通过端口号扫描服务器IP
查看>>
在android 采用 android junit test 测试注意
查看>>
【转】网页禁止后退键BackSpace的JavaScript实现(兼容IE、Chrome、Firefox、Opera)
查看>>
登录界面点击登录后如何延迟提示成功的div的显示时间并跳转
查看>>
MySQL 数据库死锁
查看>>
关于try catch
查看>>
《C语言程序设计(第四版)》阅读心得(二)
查看>>