【发布时间】:2012-03-03 20:32:27
【问题描述】:
我想在我的网站上进行源代码控制。有很多文件,所以我就去了 git add -a
不幸的是,我不小心提交并推送了一个名为 credentials.txt 的文件,其中包含我的 ftp 和 db 详细信息。我试过删除文件,提交然后推送,但是当我在历史记录中浏览我在 github 上的 repo 时,它仍然显示文件。
有没有办法摆脱这个?
【问题讨论】:
标签: git github git-push git-commit
我想在我的网站上进行源代码控制。有很多文件,所以我就去了 git add -a
不幸的是,我不小心提交并推送了一个名为 credentials.txt 的文件,其中包含我的 ftp 和 db 详细信息。我试过删除文件,提交然后推送,但是当我在历史记录中浏览我在 github 上的 repo 时,它仍然显示文件。
有没有办法摆脱这个?
【问题讨论】:
标签: git github git-push git-commit
您必须使用git filter-branch 重写历史记录。 Andy 发布了一个指向a guide on github for doing this 的链接。
不管怎样,删除文件并不能消除损害 - 在此期间提取您的 repo 的任何人都拥有它,并且至少它在 github 的基础架构中。所以,不要打扰。
与其试图隐藏所发生的事情,不如进行损害控制并更改您的密码。不要试图隐瞒已经泄露的秘密——引用本杰明·富兰克林的话,“三个人保守秘密的唯一方法就是两个人死了”。
如果它在 Internet 上仅存在片刻,则可以肯定地认为它已被十几个人保存。如果你不从这个角度工作,它可能会反过来咬你。
【讨论】:
Github 有一个很好的 guide 关于这个确切的主题。它解释了如何将其从存储库中取出,以及如何处理可能已经在公众手中的数据。
【讨论】: