我在一个项目中使用 github 已经有一段时间了,但只是作为一个问题跟踪器。所以,今晚我也花了一些时间来处理代码,并犯了一个菜鸟错误:我提交了凭证文件和其他不必要的数据。我现在已将它们添加到 .gitignore
文件中,它们应该不再是问题,但我看到它们在历史记录中可用。
这会带来安全问题,所以我必须解决这个问题并删除那里的敏感数据。我目前是唯一的开发人员,所以我只将代码保留在我的 PC 和实际服务器上,但我也想掌握它。
到目前为止,我已经尝试了this article , this one as well并在 SO 上发现了一些问题,但一直无法弄清楚。我经常遇到类似这样的错误:fatal: ambiguous argument 'rm': unknown revision or path not in the working tree.
我会删除整个存储库,但我在那里有很多问题跟踪数据,所以我需要保留它,所以这不是一个选项。我不介意其他提交,我可以使用本地机器上的代码从头开始,但需要一些方法来丢失旧提交及其完整历史记录,或者更改这些文件(.gitignore
中的某些内容) > 是目录,因此删除起来可能非常乏味)。
我尝试使用 git rebase -i
,但我只看到最后三个提交(测试),它们没有被推送,其余的在线,其中 10 个左右没有推送不在那里显示。
我使用的 repo 是私有(private)的,只有我和一个客户可以访问,所以没有第 3 方看到这个。
我是 git 的新手,非常感谢您的时间和帮助!
最佳答案
首先,这里是重要的一点:考虑您的凭据已泄露。改变他们。此时无论您做什么,它们都不再安全。
现在你已经完成了,你有几个选择:
如果您真的只想从头开始,请使用
git push --force
覆盖新提交的内容。这可能是您前进的最简单途径。git init <new-directory> $EDITOR README.md git add README.md git commit git remote add origin https://github.com/user/repo.git git push --force origin master
或者,您可以使用
filter-branch
从历史记录中删除凭据,如 GitHub help page on removing sensitive data 中所述.您的
ambiguous argument 'rm'
错误很可能与正确引用命令有关。请确保按照文章中的显示方式引用它。
关于git - 从 github 中删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21031596/