繁体   English   中英

如何在现有的裸存储库中创建 reflogs 信息

[英]How to create reflogs information in an existing bare repository

您可能已经知道,默认情况下,git 不会为新的裸存储库启用 reflog 更新。 问题是,我有一个很长的历史存储库,但它是在我设置标志“logAllRefUpdates”之前创建的,现在我希望该信息可以让另一个应用程序工作。

如何通过对现有存储库进行最小更改来实现这一点。 一个非常简单的解决方案是推送一个我不想的新提交 (:) :-)

reflog 是一种相对简单的文件格式。 这是一个例子:

] cat .git/logs/HEAD|sed 's/\t/<TAB>/'
0000000000000000000000000000000000000000 5cfe4256d98af22a570c78c5e3048391a90f5f98 Joe User <foo@example.com> 1306427954 -0400<TAB>clone: from git://git.kernel.org/pub/scm/git/git.git

您可以按照相同的格式手动构建适当的 reflog:

previous-ref-or-zero new-ref User Name <user@email> unix-timestamp timezone\tmessage

只需为每个参考创建其中一个。 您可以直接使用git for-each-ref和适当的格式字符串执行此操作(谢谢,克里斯!)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM