保留已删除引用的reflog

4
在我的 Git 仓库的本地克隆中,当引用被删除(或重命名)时,与旧名称相关联的 reflog 会被删除。
我找不到一个选项来说明“保留已删除引用的日志”。
问题:是否有一种方法可以保留已删除引用的 reflog 文件?
清理和垃圾收集仍然可以遵循 reflog 条目、不可访问对象等参数。

如果你想删除提交记录,最好的方法是保留一个引用这些提交记录的分支。 - Tim Biegeleisen
1个回答

5
据我所知,git没有提供一种方法来做到这一点。我不知道其原因;当然保留分支的reflog以满足通常的保留期将是很好的,但由于我不知道reflog过期的细节,我无法确定是否有充分的理由说明为什么会太困难。(或者在创建具有相同名称的新分支时可能会出现问题?)
无论出于何种原因,文档指定日志被删除(https://git-scm.com/docs/git-branch),并且没有指示任何更改行为的方法。我猜你可以手动复制reflog文件(.git/logs/refs/...)以保留信息,但这肯定不是用户友好的方法。
实际上,你基本上只能限于可能偶然出现在HEAD reflog中的条目。所以,我想如果你不确定自己不再需要分支的更详细历史记录,请不要立即删除它。

1
在 Git 邮件列表中曾经讨论过即使删除分支也保留 reflogs 的问题。我认为这需要等待一个真正的参考数据库,因为如果 reflogs 不仅仅是目录树中的文件,那么会有很多顽固的边角情况消失... - torek
@torek 不知道这是否是您想到的,但至少与此相关:保留已删除(远程跟踪)分支的引用日志? - Guildenstern

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