在代码中可能存在非常敏感的信息,例如密码,亚马逊s3密钥等,我根本不想将其发送到git。
我希望将这些非常具体的字段替换为“SECRET”或类似的东西。 还有,git私人仓库解决这个问题吗?
答案 0 :(得分:3)
由于git跟踪文本而不仅仅是文件,因此将这些行替换为其他文本将被git解释为对代码的更改,因此它将覆盖下一次提交中的原始敏感信息。
我在这些情况下使用的是模块化我的代码,以便将这些信息隔离在一个文件中,然后我将一行文件名添加到.gitignore
文件中。
.gitignore
文件是一组模式,每行一个文件名,git会在跟踪回购中的更改时忽略这些模式。
例如,如果我在php中编写一个Web系统,我创建的文件只存储有关连接数据库的凭据的信息(框架也是这样做的,所以你可以猜测这是一个很好的做法.. )。因此,我使用测试服务器凭据(我的协作者应该知道)或使用一些虚拟凭据编写此文件一次,提交它并将其推送到我的远程,然后我将文件名添加到我的.gitignore
。
另一方面,你有一个命令git add -p
,它以交互方式让你跳过行,但这会导致你的远程仓库中没有提到的行的文件,你必须每次手动跳过这些行你添加文件的时间......
git的一个很好的参考是Progit。如果你从git开始,强烈推荐...另外,Github's help center是一个非常好看的地方。
我希望它会有所帮助!祝你好运!!!