我有一个 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/