2

我做了一些测试提交(以测试提交钩子)并且总是将索引重置为我最后一次正常提交。现在这些陈旧的提交仍然存在:

> git reflog
fcdabf7 HEAD@{0}: reset: moving to fcdabf7e01845d6f000fc3cef2edc999c57a7e29
5c97564 HEAD@{1}: commit: t
fcdabf7 HEAD@{2}: reset: moving to fcdabf7e01845d6f000fc3cef2edc999c57a7e29
ae52246 HEAD@{3}: commit: t
fcdabf7 HEAD@{4}: reset: moving to fcdabf7e01845d6f000fc3cef2edc999c57a7e29
c58aeef HEAD@{5}: commit: t
fcdabf7 HEAD@{6}: reset: moving to fcdabf7e01845d6f000fc3cef2edc999c57a7e29
3a2cc3b HEAD@{7}: commit: test

我怎样才能删除它们?对于技术理解:如果我不理会它们,如果我进行推送,它们会被推送到上游仓库吗?

4

2 回答 2

1

首先,您不必担心悬空提交会进入远程存储库。它们不会被推送,一般会适时清理。

但是,如果要清除此类悬空对象,请尝试运行:

git gc --prune=now
于 2012-10-14T15:03:21.280 回答
1

reflog 条目引用的提交本身并不是悬空的。要清除 reflog,

git reflog expire --expire=0 --all

之后git prune可用于删除 - now-dangling - 提交。

于 2012-10-14T15:26:06.300 回答