Web.config是在提交历史中早已提交的,是否有任何方法可以删除它,所以没人能在任何提交中看到它吗?

时间:2019-02-01 18:25:38

标签: git github

Web.config在〜20的〜2提交中提交。

我确定它的提交是偶然的,但是理想情况下,我想取消私有回购-因此Web.config needs to be gone fromgit logs and github的存在和宇宙历史。 :)

有可能吗?如果可以,怎么办?感谢您抽出宝贵的时间阅读本文。

2 个答案:

答案 0 :(得分:0)

是的,这种情况非常普遍,已被包含在documentation中。

命令将类似于

$ git filter-branch --tree-filter 'rm -f passwords.txt' HEAD
  

通常最好在测试分支中执行此操作,然后在确定结果是您真正想要的之后再硬重置主分支。要在所有分支上运行filter-branch,可以将--all传递给命令。

答案 1 :(得分:0)

您可以使用rebase命令来重写历史记录。有一些限制:

  • 如果您已经将其推送到远程存储库,则需要强制将其推送
  • 如果在其他提交中对该文件进行了更多更改,则每个提交都会有冲突

您应该执行以下操作:

git rebase HEAD~20
  • 选择添加了web.config的提交,并将pick更改为edit
  • 删除web.config文件并运行git rebase --continue

如果这是唯一更改了此文件的提交,则应该不再有冲突。

我建议也阅读:How to modify a specified commit?