防止使用git意外提交密码文件

9

Git似乎不能满足我的要求,所以我需要一些建议。我有一个包含敏感信息(例如密码)的配置文件。假设我已经将配置文件与空白/通用值一起检入:

username =
password =

现在我使用真实值填充它,然后将该文件添加到.gitignore中(文件名为build.properties)。
username = bob
password = secretpassword

即使我已将其添加到.gitignore中,git仍然似乎“看到了它”。在这里该怎么办?
hostname$ more .gitignore 
build
ant.build
*.swp
build.properties

hostname$ git status
# On branch dev
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   build.properties
#
no changes added to commit (use "git add" and/or "git commit -a")

我有些误解吗?


只是为了澄清一下,如果有人执行 git -a -m 'whatever',它会自动检入密码,是吗? - corydoras
是的,如果它在版本控制下,它将被包含在提交中。 - knittl
2个回答

22

.gitignore 只会忽略尚未提交的文件。在您的情况下,您需要创建一个 password.file.template 文件并将其检入,然后将您的 password.file 放入 .gitignore 文件中。


(注:已翻译的文本保留了原有的 HTML 标签)

4

文中说“修改:build.properties”,所以已有人检入了这个文件。我猜测最好的做法是:删除该文件,提交更改,然后重新创建它而不进行检入。


是的,正如我在问题中所述,我已经将通用版本的配置文件作为模板进行了检查,因此用户必须在构建文件中输入清楚。 - corydoras
2
好的,当你想要分发模板时,无论如何都不能将其添加到.gitignore文件中(因为git不会以那种方式捡起它)。所以为什么不创建一个build.properties.template文件并将其检入呢?然后您可以指示其他开发人员删除该文件的.template部分并填写他们的凭据。 - seb
1
这也是我使用SVN的方式。创建一个模板文件,例如config.sample.txt,然后将实际的配置文件作为被忽略的文件放置,以防止意外提交。 - Matthew Scharley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接