撤销提交时如何删除提交历史记录

3

我不得不通过执行git reset --hard HEAD^^^^来撤销一些提交。

在撤销提交后,当我运行git log --all时,它显示了我从一开始做的所有提交。(当我运行git log时,它并不显示所有已删除的提交)我可以确认执行git reset --hard HEAD^^^^不会删除提交历史吗?是否有任何选项可以添加以擦除提交历史记录?

2个回答

2
请看git gc。调用git gc将删除任何没有引用的提交对象(无论是子提交、分支还是标签)。

这并没有解决问题。当提交不可达时,git gc会节省一些磁盘空间,但它永远不会改变git loggit log --all的输出,这些命令仅显示可达提交,而这些提交不会被git gc触及。 - Matthieu Moy

1
在Git中不存在所谓的“删除提交”功能。如果提交属于分支,那么它们是可达的;否则就是不可达的。执行git reset --hard HEAD^^^^会将当前分支向后移动4个提交,因此这4个提交不再被当前分支引用。但是它们仍然可以被其他分支引用(通常是远程跟踪分支,如果您已经推送了提交),因此您可以在git log --all中看到它们。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接