如何在不将敏感文件推送到GitHub的情况下使用git?

时间:2018-01-10 06:49:33

标签: php git codeigniter

例如,我正在使用CodeIgniter框架开发一个PHP网站,该框架需要将我的哈希密钥放在Application/config/config.php文件中。我当然不想将我的网站的哈希键推送到GitHub,但我仍然想推送其他配置设置,如语言环境,字符集等。

处理这种情况的最佳方法是什么?

3 个答案:

答案 0 :(得分:1)

您可以创建一个.gitignore文件,并添加您认为无需推送到GIT的文件的路径。有关详细信息,请参阅此Atlassian manual

现在,您的.gitignore文件应该包含:

Application/config/config.php

答案 1 :(得分:1)

如果您的框架或语言能够完成第一个,您有两种可能性,一种好的,一种不太好的。

好处:

  • 保留除config.php
  • 中敏感信息以外的所有配置
  • 将敏感配置放在config.user.php文件中(您放入.gitignore)。如果格式复杂,您可以创建并提交config.user.template.php以帮助其他用户。
  • 找到将此文件包含在第一个文件中的方法,或者自己阅读config.user.php
  • 中包含的配置
  • 然后,由于隔离,您可以自由更新和提交配置中的更改。

不太好的一个:

  • config.php文件放入.gitignore
  • 创建并提交包含配置(不含敏感数据)的config.template.php
  • 每位开发者必须从config.php创建并保持最新config.template.php(这有点痛苦)

答案 2 :(得分:-1)

有几种方法可以做到:

.gitignore

.gitignore是一个简单的文本文件,其中包含git忽略的文件列表 每个文件/模式都写在一行上,文件可以放在项目的根文件夹中,也可以放在任何内部文件夹中。

当放在根文件夹中时,它可以忽略任何子文件夹中的任何文件/文件夹。

如果您需要保留某个文件或文件夹,则无法在短语之前添加 !

assume-unchanged

assume-unchanged告诉git忽略对给定文件所做的任何本地更改。在你的情况下,同样的文件具有默认值或空值,并提升未更改的标志。 git将忽略所做的任何更改,因此文件不会添加到您的存储库中。

enter image description here

smudge-clean

git的这个隐藏功能允许您控制从存储库添加和提取哪些内容,以便您控制任何给定文件的内容。

enter image description here

git hooks

请在此阅读有关如何操作的完整答案。

What are some more forceful ways than a .gitignore to keep (force) files out of a repo?