【问题标题】:Why doesn't `git cherry-pick` (without `--no-commit`) run my post-commit hook?为什么`git cherry-pick`(没有`--no-commit`)不运行我的提交后挂钩?
【发布时间】:2021-08-07 19:36:33
【问题描述】:

如何使用命令git cherry-pick <commit> 触发提交后挂钩?

我尝试过的:

  • 我尝试了命令 git commit -m '...' 。它正常触发了 post-commit 钩子。
  • 在 githooks 文档中,没有与cherry-pick 相关的钩子。
  • 查看Git的源代码后,我发现它在某些情况下使用git merge,在其他情况下使用git commit。但我不确定何时使用哪个命令。

我的问题是:

  1. 为什么我使用 git cherry-pick 时提交后挂钩不起作用?
  2. 是否有一个 hook-pick 会运行?

【问题讨论】:

    标签: git githooks git-cherry-pick post-commit-hook


    【解决方案1】:

    当我使用git cherry-pick 时,为什么提交后挂钩不起作用?

    post-commit 钩子在创建提交后运行。

    但是,cherry-pick 并没有真正创建一个包含新信息的新提交(从用户的角度来看),而是复制另一个提交。

    cherry-pick 会运行一个钩子吗?

    是的,prepare-commit-msg 应该在提交被挑选之前运行,即使 commit-msg 钩子没有被执行。

    【讨论】:

    • 谢谢,我想查看git cherry-pick已经提交的文件,就像post-commit钩子一样,它需要在整个提交过程完成后运行。有什么方法可以实现吗?
    • 您可以尝试检查文件是否已暂存。如果它被暂存,它将被提交。
    • 它可以解决我的问题。非常感谢您的及时帮助!
    猜你喜欢
    • 2014-01-17
    • 2013-03-26
    • 2019-11-26
    • 1970-01-01
    • 2011-12-09
    • 2021-01-18
    • 1970-01-01
    • 2013-07-24
    • 2018-04-16
    相关资源
    最近更新 更多