这可能听起来像是重复的,但我的问题比已经回答的问题复杂一点。我很遗憾地做了一些非常错误的选择,并且不知道如何摆脱现状。
请注意,我的所有更改都没有被推送,只是本地的
在我的Java webapp中,我连接到数据库,并在我的源代码中获得硬编码的凭据(包括密码)。我没有愚蠢到用密码提交文件,我实际上提交了一个文件,它在评论//enter your credentials here
中说,输入真实密码后我运行了git update-index --assume-unchanged
。在推进我的进度之前,我想确保密码确实没有留在任何地方,所以使用 gitk 我在各种提交中搜索了密码,发现它在(多个).../.metadata/.plugins/org.eclipse.coore.resources/.history/ ...
个文件。
git rm --cached
命令但在我的开发分支中删除坏文件。因此,密码现在也可以在devel的提交历史记录中看到,而且我无法签出到 master ,因为每次我尝试这样做时,都会收到错误{{1} }。
如何在推送之前删除包含敏感数据的所有提交历史记录(我真的不想推送数据,因为这将转到公共github存储库)
再次注意,所有这些都是在本地提交的,并且远程仓库仍然是空的。如果有一种方法我可以删除所有提交历史记录和两个分支并在单个主提交中提交我的进度,即使是这样的解决方案,我也会很好,我现在感到很无助。