此问题在此处已有答案:
Make the current commit the only (initial) commit in a Git repository?(18个回答)
8年前关闭。
我想删除所有的提交历史,但保持代码的当前状态,因为在我的提交历史中,有太多未使用的提交。
我该怎么做?
有没有git命令可以做到这一点?
git filter-branch ?
git rebase ?
...
字符串
我的代码托管在github.com上。
此问题在此处已有答案:
Make the current commit the only (initial) commit in a Git repository?(18个回答)
8年前关闭。
我想删除所有的提交历史,但保持代码的当前状态,因为在我的提交历史中,有太多未使用的提交。
我该怎么做?
有没有git命令可以做到这一点?
git filter-branch ?
git rebase ?
...
字符串
我的代码托管在github.com上。
2条答案
按热度按时间nfg76nw01#
删除
.git
文件夹可能会导致git仓库出现问题。如果你想删除所有的提交历史,但保持代码的当前状态,可以按照下面的方法来做,这是非常安全的:1.检出/创建孤立分支(此分支不会在
git branch
命令中显示):字符串
1.将所有文件添加到新创建的分支:
型
1.提交更改:
型
1.删除
main
(默认)分支(此步骤是永久性的):型
1.将当前分支重定向到
main
:型
1.最后,所有更改都在本地存储库上完成,并强制更新远程存储库:
型
PS:这不会保留旧的提交历史记录。现在你应该只能在git仓库的历史记录中看到新的提交。
gzjq41n42#
如果您确定要删除所有提交历史记录,只需删除项目根目录中的
.git
目录(注意它是隐藏的)。然后在同一文件夹中初始化一个新的存储库,并将其链接到GitHub存储库:字符串
现在提交当前版本的代码
型
最后强制更新到GitHub:
型
但是,我建议在执行这些步骤之前备份历史记录(存储库中的
.git
文件夹)!