我想知道是否有办法限制某些文件被推送到git repo?
我有一个包含用户名和密码信息的文件,我希望这些信息永远不会被推送到我的仓库。
我正在使用git进行版本控制。我想知道是否有可能让git不允许我的文件" passwords.txt"要上传到我的仓库。因此,如果我不小心添加,提交和推送文件,它将引发错误,例如"无法将passwords.txt推送到回购。"
这是可能的,还是在添加和提交文件时我是否需要非常小心?
答案 0 :(得分:3)
在项目文件夹中,创建一个.gitignore
文件。
然后在文件中插入以下行:
passwords.txt
.gitignore文件会告诉Git要忽略的内容。
您可以忽略文件和文件夹。
如果您之前意外提交了passwords.txt
,请告诉Git使用此命令从现在开始将其排除:
git rm --cached passwords.txt
运行git status
会将passwords.txt
显示为未跟踪的文件,因此未来的提交中不会包含该文件 - 因此请更新.gitignore文件。
要查看使用模式,您需要引用gitignore manual.
答案 1 :(得分:3)
尝试永不推送文件风险太大。
确保您的password.txt
未加版(git rm --cached
,并添加到.gitignore
)
然后,您可以注册一个smudge
脚本,该脚本生成包含git checkout
敏感信息的文件。
这是content filter driver的一部分,使用.gitattributes
declaration。
(图片来自" Customizing Git - Git Attributes",来自" Pro Git book")
那' smudge
'脚本(你必须写)需要:
password.txt
生成password.txt.tpl
。这意味着:
password.txt.tpl
已添加到git repo password.txt
在.gitignore
文件中声明,从不版本化(从不推送)。