从Git历史记录中删除敏感数据但不删除文件

9
我有一个文件,里面曾经包含敏感的配置信息。我将这些配置信息移动到了另一个不受版本控制的文件中。我想保留另一个文件的版本控制,但我想删除它的历史记录,因为人们可以很容易地在github上浏览源代码,并在以前的提交中找到敏感信息。最好的方法是什么?我只看到如何从版本控制中删除文件本身并清除其历史记录。
对git还有点新,所以请原谅我的新手。

2
非常常见的问题:https://dev59.com/73NA5IYBdhLWcg3wrPyq - GoZoner
Github有一篇文章,可以帮助你完成这个任务。去看看吧。 - Srikanth Venugopalan
1个回答

3
你可能想要查看这篇文章:https://help.github.com/articles/remove-sensitive-data 基本上它描述了这条命令:
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch Rakefile' \
  --prune-empty --tag-name-filter cat -- --all

Rakefile的历史记录从git中删除。然而,他们继续将该文件添加到他们的.gitignore文件中。你应该跳过这部分,因为你想保留该文件在版本控制中。


1
能否解释一下它实际上是做什么的? - user3467349
5
这篇文章介绍如何删除文件。但是提问者的问题标题要求不要删除文件。 - Tyler Collier
@TylerCollier 如果你看了我的回答,它指出不要将文件添加到 gitignore 中,因为这样会将其从版本控制中移除。这将从历史记录中删除该文件,从而允许删除敏感数据。 - Leo Correa
5
楼主已经知道如何做了:“我只看到如何将文件本身从版本控制中移除并清除其历史记录。”我认为他只想从历史记录中删除敏感信息,而不是历史记录本身。 - Tyler Collier
天啊,简单的右键删除历史记录怎么就变得这么复杂了。真是疯狂。我无法让它正常工作。一直收到提示消息说它仍然没有改变。 - Koen Zomers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接