我在 GitHub 上有一个存储库,我想将其公开,以便招聘人员可以查看。这个存储库虽然包含我的 SMTP 和不应与其他人共享的 MongoDB URI。此信息在我的 application.properties 文件中。
隐藏这些敏感数据并确保没有人可以查看旧提交并在隐藏之前查看它的最简单方法是什么?
我在网上看到了一些方法,但它们看起来都很复杂......
感谢您的经验和时间
我在 GitHub 上有一个存储库,我想将其公开,以便招聘人员可以查看。这个存储库虽然包含我的 SMTP 和不应与其他人共享的 MongoDB URI。此信息在我的 application.properties 文件中。
隐藏这些敏感数据并确保没有人可以查看旧提交并在隐藏之前查看它的最简单方法是什么?
我在网上看到了一些方法,但它们看起来都很复杂......
感谢您的经验和时间
使用环境变量隐藏您的敏感数据。喜欢
spring.data.mongodb.host=${MONGO_DB_HOST}
spring.mail.host=${MAIL_HOST}
在您的开发环境中设置值。
我不知道如何隐藏你的旧提交。
如果目标只是招聘,是否可以接受第二份招聘,而保留原件?
虽然通过 git 肯定有更多惯用的方法来实现这一点,但具有最少 git 知识或先进技术的简单解决方案将是:
.git
)文件复制到新项目中(使用控制台或操作系统的窗口 UI)Make a .gitignore file at the root of your project and inside list whatever files you don't want git to have access to it when you push into GitHUb, for example:
/public/packs
/node_modules/
.pnp.js
/ (forward slash) is used for folders and . (dot) is used for files
Here follows a picture of the location of the .gitignore file.
我自己没有使用过,但是开源的BFG Repo-Cleaner看起来可以满足您对简单性的要求,同时保留活动图表供审阅者查看。如果您希望保留您的私人工作副本,同时仍保持活动历史记录可见,则可以在回购的公开副本上完成此操作。
按照工具的使用说明,您应该能够执行以下操作(假设您希望在新的 repo 副本中进行这些更改):
第一步是按照GitHub 文档中的说明在 GitHub 上复制存储库。
为此,首先创建一个新的存储库。
接下来,按照 GitHub 说明镜像存储库:
- 打开终端。
- 创建存储库的裸克隆。
$ git clone --bare https://github.com/exampleuser/old-repository.git
- 镜像推送到新的存储库。
$ cd old-repository.git $ git push --mirror https://github.com/exampleuser/new-repository.git
- 删除您之前创建的临时本地存储库。
$ cd .. $ rm -rf old-repository.git
现在您有了重复的存储库,您可以运行 BFG Repo-Cleaner 来替换您想要隐藏的所有文本实例***REMOVED***
。
$ java -jar bfg.jar --replace-text replacements.txt my-repo.git
该replacements.txt
文件将包含 SMTP、MongoDB URI 和您想要隐藏的任何其他文本。
mongodb://my-username:my-password@host1.example.com:27017,host2.example.com:27017/my-database
marco-f@example.com
请注意,这不会更新master
/HEAD
分支上的最新提交,因此需要手动更改,然后提交。这可以通过使用该--amend
选项的最终提交来实现,或者通过在手动更改文件的情况下运行 BFG Repo-Cleaner 之前进行新的提交来实现。
$ git commit --amend
现在已经进行了更改,可以将它们推送到 GitHub。
$ git push