为什么命令“git log -g”在 git 服务器端无法正常运行?

Why command 'git log -g' not run correctly in git server side?

提问人:João Carlos Sousa 提问时间:7/20/2023 最后编辑:Drew ReeseJoão Carlos Sousa 更新时间:7/20/2023 访问量:46

问:

本地命令 git log -g --pretty=%H $refname返回新分支的哈希提交是可以的,但是在服务器端的 post-receive 钩子内运行时,相同的 commmand 返回 null。如果我删除'-g'选项命令正常运行,如果我返回de选项,则结果再次为空。服务器端的选项“-g”有什么问题?

我需要知道来自新 git 分支的哪些提交被推送到服务器,以便我可以将它们的消息写入跟踪工具,但是对于新分支,接收后钩子将 oldrev 设置为 0 哈希号,我无法列出所有带有“oldrev.”的消息。纽雷夫'。

如果命令“git log -g --pretty=%H $refname”返回正确的新哈希值,我将从新分支获取第一个哈希值,并可以列出oldrev。newrev 正确,但该命令返回 null,并且我没有正确的新提交列表

GitLab Self-Hosted::Git 版本 2.40.1.gl2::

git 服务器端 githooks

评论

5赞 phd 7/20/2023
-g方法。很可能您在服务器上没有 reflog,仅此而已。--walk-reflogs
0赞 João Carlos Sousa 7/21/2023
在这种情况下,我的 git 服务器没有或所有 git 服务器都没有 reflogs?更新 我找到了答案,我把它留在这里,以防它对其他人有用 “参考日志,或”reflogs“,记录分支和其他参考的提示何时在本地存储库中更新。git-scm.com/docs/git-reflog 谢谢!
1赞 phd 7/21/2023
服务器上的存储库是裸存储库,默认情况下,裸存储库没有 reflog。您可以使用 打开它们。见 stackoverflow.com/a/49238919/7976758stackoverflow.com/search?q=%5Bgit%5D+bare+refloggit config core.logAllRefUpdates true

答: 暂无答案