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

Magit:如何在编辑提交日志之前查看预提交挂钩?,git,emacs,magit,Git,Emacs,Magit,使用命令行上的git,您可以在输入提交日志消息之前看到预提交挂钩的结果。如果预提交钩子导致提交失败,则警告您不要写任何东西 但是使用magit,你会被要求输入你的日志注释,然后它会评估你的钩子,如果失败了,你也不知道为什么。你刚才读到: git异常退出,代码为1。 我理解这是正常的,因为只有当您编辑完日志消息后,magit才会运行git命令 那么,在询问日志之前,您将如何让magit评估您的钩子? 如何让magit显示钩子的结果 一个相关的问题是,如何为pre-commit hook提供参数,以

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

但是使用magit,你会被要求输入你的日志注释,然后它会评估你的钩子,如果失败了,你也不知道为什么。你刚才读到:

git异常退出,代码为1。
我理解这是正常的,因为只有当您编辑完日志消息后,magit才会运行git命令

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

一个相关的问题是,如何为pre-commit hook提供参数,以便只为隐藏的文件而不是存储库中的所有文件运行它

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


谢谢

在git被magit调用失败后,您应该能够使用
$

对于评估预提交钩子,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

当git被magit调用失败后,您应该能够使用
$

对于评估预提交钩子,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

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


您可以对它进行测试,它可能会忽略钩子,并且暂时不要运行预提交以外的钩子。

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


您可以对它进行测试,它忽略了忽略钩子的可能性,并且现在不要运行其他钩子而不是预提交。

谢谢,
--cached
选项非常完美,但我无法使用钩子。使用
$
也很有用。对于钩子,您可以运行(shell命令“/.git/hooks/pre-commit”)谢谢,
--cached
选项非常完美,但我无法使用钩子。使用
$
也很有用。对于钩子,您可以运行(shell命令“/.git/hooks/pre-commit”),您可能希望将问题报告给magit。这似乎是magit中不存在的功能,但可能很有用。在创建问题时,您可能希望向magit报告该问题。这似乎是magit中不存在的功能,但可能很有用