Git cherry-pick操作可以执行哪些git hooks?

10

我正在尝试找到一种在 cherry-pick 提交时检查它们的方式,但是很不幸,我无法找到适用于 cherry-pick 操作的 git 钩子。有没有可能的解决方案可以在 cherry-pick 提交时执行脚本?


prepare-commit-msg被调用以供git cherry-pick(无参数-n)使用。但是似乎不可能区分git cherry-pick和其他命令,如git rebase - ElpieKay
@ElpieKay 所以“预重置”钩子会在樱桃拣选时被调用? - ziemowit141
@ziemowit141 不可以。这样就可以区分 git cherry-pickgit rebase 了。 - ElpieKay
1个回答

3
作为其他评论中提到的,没有直接的cherry-pick hook。
但是我可以为您提供一个解决方法,在特定条件下可能有效:
一些git前端会为每个cherry-pick提交添加默认的提交消息。
这里仅举一个例子GitExtension,其中cherry pick命令会显示一个名为“Cherry pick commit”的对话框,其中有一个可选项“将提交引用添加到提交消息中”。 使用此选项,提交消息将如下所示:
Fix of security problem sp345

(cherry picked from commit c157f17740bad0c8c59ff3f693a747552008371d)

# Conflicts:
#   authorization/secure/check.py

一个 commit-msg 钩子可以这样编写:
  1. 检查提交信息是否包含 cherry picked from commit
  2. 如果是,则在 "cherry pick 钩子" 中执行需要的操作
只有一个必要条件:每个提交者都遵循添加(通过工具或手动方式)所需的文本到提交信息中,以便正确地检测它作为一个 cherry-pick 提交。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接