【发布时间】:2023-03-08 11:45:01
【问题描述】:
我知道 git reset(包括 --hard),但这并没有完全删除提交,它只是调整了树。我已经探索过 git gc,但这似乎也永远不会永久删除提交。我知道过滤器分支,但这只会从提交中删除文件,而不是提交本身。
围绕这个主题有很多堆栈溢出问题,但我找不到问题的真正答案:如何真正删除本地提交(或一系列提交) ,这样它就不再存在于数据库中的任何地方,就好像它根本没有完成一样?如果它是一种仅限于分支尖端的方法,那就没问题了。
编辑:这是我的错误。我正在使用 gitk 并使用 F5 查看整个树。但是 F5 执行“更新”,而 shift-F5 执行“重新加载”。除非您通过按 shift-F5 完全重新加载,否则删除实际上并不会真正显示出来。
【问题讨论】:
-
做一个
git reset --hard origin/master -
首先,origin/master 用于远程存储库。其次,与流行的看法相反,get reset --hard 不会删除提交。如果您查看整个存储库树,它们仍然存在。
-
Som:那篇文章是关于 filter-branch 的,它不会删除提交。它只删除文件。
标签: git