2017-08-05 184 views
0

当存储库设置完成后,在最初的提交中,添加的文件之一包含敏感数据(程序员的个人信息),这些数据本不应该存在。是否有可能完全从git历史中抹去?不是整个文件,只有几行敏感数据。从git历史记录中删除文件的某些内容

该存储库相当新,所以没有分支,并且该特定文件自初始提交后未被修改。 (PS:我对git相当陌生,我还不懂复杂的命令)

+0

过滤分支应该这样做:https://stackoverflow.com/a/4114121/6309 – VonC

+1

可能的重复[如何从Git存储库中的提交历史中删除/删除大文件?](https:/ /stackoverflow.com/questions/2100907/how-to-remove-delete-a-large-file-from-commit-history-in-git-repository) – ephemient

回答

3

现在,您可以编辑该文件以删除在一个新的违规内容提交,则交互式衍合那些承诺。一步一步的指导是在这里:https://stackoverflow.com/a/21353994/4323但要点是:

make sure you have a backup 
edit thefile 
git commit thefile -m "remove details" 
git rebase -i --root 

现在你会看到所有提交的名单。将最后一个(“删除详细信息”)从“pick”更改为“fixup”,并将其移至第一次提交后。

此后,您可能需要git push -f,才能在原始服务器上重写历史记录。

+0

谢谢!这个伎俩。它现在从“初始提交”中消失了,我希望git不会将它存储为备份或其他任何地方 – AdyAdy

+1

@AdyAdy:在Git决定清理它之前,原始的“不良”提交仍会在磁盘上存在一段时间。你可以按照这里的说明做到这一点:https://stackoverflow.com/questions/1904860/how-to-remove-unreferenced-blobs-from-my-git-repo - 注意你需要这样做在每一个回购克隆,如果你是偏执狂。 –

相关问题