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

时间:2012-12-05 05:05:36

标签: git github

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

我该怎么做?

有没有git命令可以做到这一点?

git filter-branch ?
git rebase ?
... 

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

2 个答案:

答案 0 :(得分:787)

删除.git文件夹可能会导致git存储库出现问题。如果要删除所有提交历史记录但保持代码处于当前状态,则执行此操作非常安全,如下所示:

  1. 结帐

    git checkout --orphan latest_branch

  2. 添加所有文件

    git add -A

  3. 提交更改

    git commit -am "commit message"

  4. 删除分支

    git branch -D master

  5. 将当前分支重命名为master

    git branch -m master

  6. 最后,强制更新您的存储库

    git push -f origin master

  7. PS:这不会保留旧的提交历史记录

答案 1 :(得分:80)

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

git init
git remote add origin git@github.com:user/repo

现在提交您当前的代码版本

git add *
git commit -am 'message'

最后强制更新到GitHub:

git push -f origin master

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