Magit:如何在编辑提交日志之前查看预提交挂钩



在命令行上使用git,您可以在输入提交的日志消息之前看到预提交挂钩的结果。如果你的预提交挂钩导致提交失败,你要小心,不要写任何东西。

但是使用magit时,系统会要求您输入日志注释,然后它会评估您的钩子,如果失败,您将看不出原因。你刚刚读到:

git exited abnormally with code 1.我理解这是正常的,因为只有在完成日志消息的编辑后,magit才会运行git命令。

那么,在请求日志之前,您将如何让magit评估您的钩子呢?如何使magit显示钩子的结果?

一个相关的问题是,如何为预提交挂钩提供参数,以便仅对存储的文件而不是存储库中的所有文件运行它?

我使用预提交挂钩主要是为了检查我是否忘记了调试内容,比如剩余的"ipdb"和一些个人跟踪。

谢谢!

我已经编写了在打开日志消息缓冲区之前运行钩子的代码:

https://github.com/vanicat/magit/commit/87ec17c46b156c8508a47aa6c9ba982ef8a61b4c

你可以测试它,它错过了忽略钩子的可能性,现在除了预提交之外,不要运行其他钩子。

在magit调用git失败后,您应该能够通过使用$ 来了解原因

对于评估预提交钩子,目前在magit中没有任何东西。你可以试着在magit-log-edit-mode-hook中放一些东西:

(add-hook 'magit-log-edit-mode-hook
          '(lambda ()
                (shell-command "shell command to run git's hook")))

当然,这里缺少shell命令。。。

对于预提交中的相关问题,您需要使用git来了解将提交的文件。类似的东西

git diff --name-only --cached

最新更新