2016-03-25 40 views
0

我的项目有一个包含数据库连接和私有API密钥的文件。对于使用我的项目的其他人,该文件是必需的,但他们当然不应该访问我的私人API密钥。跳过一个文件,但仍然是存储库的一部分

什么是最好的管理方式?只需将匿名文件上传一次给github,不要将其包含在我的存储库中?或者是否有更好的方式来使用私人stuf和匿名网络版本制作本地文件。

Gabrie

+2

您的私钥应该存储在一个单独的文件中,该文件被项目引用*,而不是项目本身。 – chepner

+1

更一般地说,连接数据库所需的密钥(或包含密钥的文件)应该是一个配置选项。 – chepner

回答

1

一种方式去了解它添加和提交文件的匿名版本,然后发出以下命令:

git update-index --assume-unchanged <file> 

(见文档的git-update-index。)

然后Git会忽略对这个文件的任何改变,所以你可以添加你的私人东西,而不是将它添加到索引中并且意外犯下。

不利的一面是,这只会影响您的本地存储库。其他开发人员在处理项目时仍会监视此文件的变化,除非他们在自己的本地回购中执行相同的命令。

这也是一个有点繁琐,因为,如果你想更改这个文件的东西,并承诺这些变化,你必须执行相反的命令:

git update-index --no-assume-unchanged <file> 

并确保提交只有非私人更改(暂时删除私人内容或使用交互式添加)之后,您需要再次运行原始命令,以使Git不再需要进一步更改。

相关问题