如何从github中删除文件并停止跟踪?

时间:2013-03-17 15:55:47

标签: git github

虽然我已将我的database.yml添加到.gitignore中,但它仍然在github中添加。现在

  1. 我应该如何从github中删除它? (我看到这个How to remove files from the GitHub repository?,这是从github中删除的唯一方法吗?)
  2. 如何阻止它被添加到github,因为它包含敏感信息
  3. 由于

3 个答案:

答案 0 :(得分:3)

听起来您正在询问如何从GitHub上的现有历史记录中删除该文件。

GitHub的帮助解释了exactly how to do that

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch database.yml' --prune-empty --tag-name-filter cat -- --all

答案 1 :(得分:2)

是的,这是从Git存储库中删除文件的方法。删除后,由于您将此文件添加到.gitignore文件中,因此不会再次跟踪该文件。因此,如果您想在本地保留此文件,请在其他位置保留副本,然后使用git rm path/database.yaml然后将其放回原位。

请注意,在.gitignore文件中添加更多规则不会以任何方式影响git已经跟踪的文件,只会影响未跟踪的文件。

答案 2 :(得分:0)

请注意:

这意味着一个简单的命令足以获取所有repos的所有敏感文件:

./ghrabber.py "path:.bash_history"
  

您在git repo中错误地包含了所有bash命令行历史记录

./ghrabber.py "path:.htpasswd"
  

您获得所有htpasswd个文件

./ghrabber.py "ext:mbox"
  

你收到邮箱......

./ghrabber.py "path:databases.yml"
  

您获得数据库的连接登录/密码...

(来自Korben.info - french