从github中删除文件

won*_*ile 2 git github rebase git-rewrite-history

我已经在一段时间内将github用于一个项目,但仅作为问题跟踪器.因此,今晚我花了一些时间来处理代码,并且犯了一个菜鸟错误:我提交了凭据文件和其他不必要的数据.我现在已经将这些添加到.gitignore文件中,它们应该不再是问题,但我发现它们在历史记录中可用.

这带来了安全问题,因此我必须对其进行排序并删除那些敏感数据.我是目前唯一的开发人员,所以这就是为什么我只在我的电脑和实际的服务器上保存代码,但也希望得到这个.

到目前为止,我已经尝试了这篇文章,发现了一些关于SO的问题,但是还没有弄明白这一点.我大多得到一些像这样的错误:fatal: ambiguous argument 'rm': unknown revision or path not in the working tree.

我会删除整个仓库,但我有很多跟踪数据的问题,所以我需要保留它,所以这不是一个选项.我不介意其他提交,我可以从头开始使用本地机器的代码,但需要一些方法来丢失旧的提交及其完整的历史记录,或者更改这些文件(有些东西在.gitignore目录中,所以可能非常繁琐的删除).

我尝试过git rebase -i,但在那里我只看到我的最后三次提交(测试),没有推,其余的在线,其中10个左右没有显示.

我使用的回购是私有的,我和客户只能访问,所以没有第三方看到这个.

我是git的新手,谢谢你的时间和帮助!

Chr*_*ris 7

首先,这是重要的一点:考虑您的凭据受到损害.改变他们.无论你在这一点上做什么,他们都不再安全.

现在你已经做到了,你有几个选择:

  • 如果你真的只想从头开始,用新的提交覆盖那里的内容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
    
    Run Code Online (Sandbox Code Playgroud)
  • 或者,您可以filter-branch使用GitHub帮助页面上有关删除敏感数据的概述,从历史记录中删除凭据.

    您的ambiguous argument 'rm'错误可能与正确引用命令有关.请务必按照文章中的说明引用它.