我已经在一个项目中使用 github 一段时间了,但是仅作为问题跟踪器。因此,今晚我也花了一些时间来处理代码,并犯了一个菜鸟错误:我提交了凭证文件和其他不必要的数据。我已将它们添加到.gitignore
现在提交文件,它们应该不再是问题,但我看到它们在历史记录中可用。
这带来了安全问题,所以我必须解决这个问题并删除其中的敏感数据。我是目前唯一的开发人员,所以这就是为什么我只将代码保留在我的电脑和实际服务器上,但也想掌握这一点。
到目前为止,我已经尝试过本文 https://help.github.com/articles/remove-sensitive-data, 这个也是 http://git-scm.com/book/en/Git-Tools-Rewriting-History#The-Nuclear-Option%3a-filter-branch并发现了一些关于 SO 的问题,但一直无法弄清楚。我大多会遇到这样的错误:fatal: ambiguous argument 'rm': unknown revision or path not in the working tree.
我会删除整个存储库,但那里有很多问题跟踪数据,所以我需要保留它,所以这不是一个选择。我不介意其他提交,我可以使用本地计算机上的代码从头开始,但需要某种方法来丢失较旧的提交及其完整历史记录,或者更改这些文件(.gitignore
是目录,因此删除起来可能非常繁琐)。
我尝试过git rebase -i
,但在那里我只看到我的最后三个提交(测试),这些提交没有被推送,其余的在线提交,其中大约有 10 个没有显示在那里。
我使用的存储库是私有的,我和客户只有访问权限,因此没有第三者看到这一点。
我是 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 帮助页面 https://help.github.com/articles/remove-sensitive-data.
Your ambiguous argument 'rm'
错误可能与正确引用命令有关。请务必按照文章中所示的方式引用它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)