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

时间:2012-07-19 11:55:48

标签: git emacs magit

在命令行中使用 git ,您可以在输入提交的日志消息之前看到预提交挂钩的结果。如果你的预提交钩子使提交失败,你就会被警告并且不会写任何东西。

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

git exited abnormally with code 1. 我理解这是正常的,因为当你完成编辑magit运行git命令的日志消息时。

那么,在你要求日志之前,你如何制作评估你的钩子? 你如何让magit显示钩子的结果?

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

我使用预提交挂钩主要是为了检查我是否没有忘记调试内容,比如剩下的'ipdb'和一些个人痕迹。

谢谢!

2 个答案:

答案 0 :(得分:2)

在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

答案 1 :(得分:2)

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

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

你可以测试它,它错过了忽略钩子的可能性,并且现在不会运行其他钩子而不是预先提交。