关于git:如何删除github中的所有提交历史记录?

how to delete all commit history in github?

本问题已经有最佳答案,请猛点这里访问。

我想删除所有提交历史记录,但将代码保持在当前状态,因为在我的提交历史记录中,有太多未使用的提交。

我该怎么做?

有什么git命令可以做到吗?

1
2
3
git filter-branch ?
git rebase ?
...

我的代码托管在github.com上。


删除.git文件夹可能会导致Git存储库出现问题。如果您希望删除所有提交历史记录,但将代码保持在其当前状态,则可以按以下方式进行操作:

  • 结账

    埃多克斯1〔3〕

  • 添加所有文件

    江户十一〔四〕号

  • 提交更改

    埃多克斯1〔5〕

  • 删除分支

    埃多克斯1〔6〕

  • 将当前分支重命名为master

    江户十一〔七〕号

  • 最后,强制更新存储库

    埃多克斯1〔8〕

  • 附言:这不会保留你以前的提交历史。


    如果您确定要删除所有提交历史记录,只需删除项目根目录中的.git目录(注意它是隐藏的)。然后初始化同一文件夹中的新存储库并将其链接到Github存储库:

    1
    2
    git init
    git remote add origin [email protected]:user/repo

    现在提交当前版本的代码

    1
    2
    git add *
    git commit -am 'message'

    最后强制更新到github:

    1
    git push -f origin master

    但是,我建议在执行这些步骤之前备份历史记录(存储库中的.git文件夹)!