git - 是否可以对过去的提交运行 git commit-msg Hook ?

标签 git

我有一个 commit-msg Hook ,我为所有本地提交运行它,并且对于某个项目,我需要运行它。问题是,当我从其他 fork 中 pull 入时,我的一些同胞没有运行这个 commit-msg 钩子(Hook)。迄今为止我一直在做

$ git rebase --interactive $commit_parent

概述非常相似here .选择没有正确完成的提交,重新编辑等等。一切都非常可行,但也很乏味,因为我是手工完成的。

我怎样才能使它自动化?钩子(Hook)不需要监督。

最佳答案

这可以使用自定义编辑器以自动方式实现:

#!/bin/bash
# Save to rebase_editor.sh, chmod +x it
file="$1"
if head -n1 "$file" | egrep -q '^pick' "$file" ; then
  perl -pi -e 's/^pick/r/' "$file"
fi

然后运行:

GIT_EDITOR=./rebase_editor.sh git rebase -i <some-rev>

在第一次调用时,我们的“编辑器”将从 rebase -i 获取提交列表,其中它将每个 pick 更改为 r(即 reword)。在这种模式下,git 将立即开始调用我们的“编辑器”,并在每次重新设置提交时显示一条消息(并且不会像在 pick 模式下那样通常会暂停,您可以在其中更改您的 promise 自己)。

关于git - 是否可以对过去的提交运行 git commit-msg Hook ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7861992/

相关文章:

git - 如何在 GitLab 中创建默认分支?

git - 用于初始化和上传存储库的 Mercurial 操作的 git 等效项是什么?

git - 为什么我不能将这个目录添加到git?

git - 我可以在一个命令中销毁并重新创建 Git 远程分支吗?

git - 你如何 pull 别人在你的分支上所做的提交?

Git rebase vs 重新创建分支并应用更改

git - 在不破坏当前提交的情况下返回上一个提交

git - 如何修复git中的 "modified content, untracked content"?

git - 为什么 git format-patch 不适用于 stashes?

git - 获取特定作者(不止一个)所做的提交