【问题标题】:Remove some content of a file from git history从 git 历史记录中删除文件的某些内容
【发布时间】:2018-01-13 02:44:11
【问题描述】:

在设置存储库时,在初始提交中,其中一个添加的文件包含不应该存在的敏感数据(程序员个人信息)。是否可以从 git 历史记录中完全删除它?不是整个文件,只有几行包含敏感数据。

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

【问题讨论】:

标签: git git-rewrite-history


【解决方案1】:

【讨论】:

  • 我先搜索了一下,他们说要删除整个文件。我需要文件在那里,我只想删除其中的几行。
【解决方案2】:

您现在可以编辑该文件以删除新提交中的违规内容,然后以交互方式对该提交进行变基。分步指南在这里: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 来重写您的源服务器上的历史记录。

【讨论】:

  • 谢谢!这成功了。它现在从“初始提交”中消失了,我希望 git 不会将其存储为备份或其他任何地方
  • @AdyAdy:最初的“坏”提交仍会在磁盘上存在一段时间,直到 Git 决定清理它。您现在可以按照此处的说明进行操作:stackoverflow.com/questions/1904860/… - 请注意,如果您偏执,则需要在 repo 的每个克隆上执行此操作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-21
  • 1970-01-01
  • 2014-06-19
  • 2020-03-20
  • 1970-01-01
  • 1970-01-01
  • 2020-06-06
相关资源
最近更新 更多