Why doesn't `git cherry-pick` (without `--no-commit`) run my post-commit hook?

456 Views Asked by At

How can I trigger a post-commit hook with the command git cherry-pick <commit>?

What I've tried:

  • I tried the command git commit -m '...' . It triggered the post-commit hook normally.
  • In the githooks document, there are no hooks related to cherry-pick.
  • After viewing the source code of Git, I found it uses git merge in some cases, and git commit in others. But I'm not sure when to use which command.

My questions are:

  1. Why don't post-commit hooks work when I use git cherry-pick?
  2. Is there a hook that cherry-pick will run?
1

There are 1 best solutions below

3
On BEST ANSWER

Why don't post-commit hooks work when I use git cherry-pick?

The post-commit hook is run after creating a commit.

However, cherry-pick does not really create a new commit with new information (from the user perspective) but copies another commit.

Is there a hook that cherry-pick will run?

Yes, the prepare-commit-msg should be run before commit is cherry-picked, even though the commit-msg hook is not executed.