【问题标题】:How to delete the history of a git commit? [duplicate]如何删除 git commit 的历史记录? [复制]
【发布时间】:2021-05-06 11:19:35
【问题描述】:

我最近做了一个交互式 rebase 以从我的 repo 中删除一个特定的提交。但是,我仍然可以使用git show <commit hash> 查看提交的详细信息。如何完全删除此已删除提交的历史记录?

我问的是“如何删除提交的历史记录?”,而不是“如何从 git 历史记录中删除提交”。这不是一个重复的问题。这些建议都不能解决我的问题。

【问题讨论】:

  • 该提交是否已推送到远程?
  • git reflog expire --all BRANCH1 BRANCH2 && git prune --expire now
  • 你认为“提交历史”是什么意思?唯一存在的“提交历史”是提交本身及其子项。因此,删除“提交历史”的唯一方法是删除该提交。
  • 这意味着其他东西(例如,一个开放的分支)仍在引用它。

标签: git github


【解决方案1】:

如果提交不在任何分支或标签的历史记录中,您可以这样做:

git gc --aggressive

git gc 也作为其他一些 git 命令(如 pushpull)的副作用运行,因此提交应在一段时间后自动消失。

【讨论】:

    猜你喜欢
    • 2013-03-22
    • 2017-06-16
    • 2023-01-30
    • 2014-07-07
    • 2019-11-29
    • 2017-10-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-09
    相关资源
    最近更新 更多