如何删除github中的所有提交历史?[复制]

a64a0gku  于 11个月前  发布在  Git
关注(0)|答案(2)|浏览(162)

此问题在此处已有答案

Make the current commit the only (initial) commit in a Git repository?(18个回答)
8年前关闭。
我想删除所有的提交历史,但保持代码的当前状态,因为在我的提交历史中,有太多未使用的提交。
我该怎么做?
有没有git命令可以做到这一点?

git filter-branch ?
git rebase ?
...

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

nfg76nw0

nfg76nw01#

删除.git文件夹可能会导致git仓库出现问题。如果你想删除所有的提交历史,但保持代码的当前状态,可以按照下面的方法来做,这是非常安全的:
1.检出/创建孤立分支(此分支不会在git branch命令中显示):

git checkout --orphan latest_branch`

字符串
1.将所有文件添加到新创建的分支:

git add -A


1.提交更改:

git commit -am "commit message"


1.删除main(默认)分支(此步骤是永久性的):

git branch -D main


1.将当前分支重定向到main

git branch -m main


1.最后,所有更改都在本地存储库上完成,并强制更新远程存储库:

git push -f origin main


PS:这不会保留旧的提交历史记录。现在你应该只能在git仓库的历史记录中看到新的提交。

gzjq41n4

gzjq41n42#

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

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

字符串
现在提交当前版本的代码

git add *
git commit -am 'message'


最后强制更新到GitHub:

git push -f origin master


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

相关问题