【发布时间】:2019-02-10 20:57:15
【问题描述】:
我如何确定是什么阻止了通过以下命令从 git 中删除提交?
git reflog expire --expire=now --all
git gc --prune=now
详情
我想从我的克隆中完全删除一个提交(例如,提交哈希 XYZ)。如果上述不是正确的命令(或者我的以下命令/推论中的任何一个不正确),请告诉我。
我知道XYZ 在运行上述修剪后仍保留在我的克隆中,因为以下返回日志列表:
git log XYZ
我知道XYZ 不在任何分支中,因为以下内容不输出任何内容:
git branch --contains XYZ
我认为XYZ 没有任何隐藏,因为以下内容没有输出:
git stash list
然而,XYZ 实际上是在一个 stash 中,但是一个 git 错误阻止了这个 stash 被列出。
【问题讨论】:
-
提交是否有与之关联的标签?查看
git show-ref以查看任何参考资料。 -
git show-ref输出包括XYZ refs/stash,但git stash list仍然没有输出任何内容... -
有趣的是它是“最新的”存储然后...试试
git stash clear看看是否有帮助 -
修复了它。为什么
git stash list不输出任何东西,如果有东西在藏匿处?这毫无意义…… -
我在远程找到的唯一像这样的东西是stackoverflow.com/questions/22076944/…
标签: git git-commit git-reflog git-gc