如何在现有裸存储库中创建引用日志信息

发布于 2024-11-10 04:45:33 字数 175 浏览 4 评论 0原文

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

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

As you might have known that by default, git doesn't enable reflog updates for new bare repositories. The problem is, I have a long history repository but it was created before I set the flag "logAllRefUpdates" on, and now I want that information for another application to work.

How can I achieve that with minimal changes made to the existing repository. A very simple solution is pushing a new commit which I don't want to (!) :-)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烦人精 2024-11-17 04:45:33

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

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

您可以按照相同的格式手动构建适当的引用日志:

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

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

The reflog is a relatively simple file format. Here's an example:

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

You can manually construct appropriate reflogs by following the same format:

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

Just create one of these for each ref. You can probably do this directly with git for-each-ref with an appropriate format string (thanks, Chris!)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文