我有一个post-commit钩子,可以完成ruby。它工作得很好,但在某些情况下,我想在执行rebase或者我提交--amend时跳过代码执行。
有人知道在这些情况下我是如何触发提交后挂钩或任何解决方法的吗?
Greg
答案 0 :(得分:6)
重新定位时,rebase-merge
文件夹中会出现一个名为.git
的目录。这可能是在rebase
期间禁用挂钩的方法(rebase
btw的开头由pre-rebase
挂钩指示。)
关于--amend
,我无法帮助你。
答案 1 :(得分:0)
如果你想从钩子中检测git commit --amend,这是你最好的选择
的bash
if [[ $(ps -ocommand= -p $PPID) == "git commit --amend" ]]; then
echo "always allow git commit --amend"
exit 0
fi
红宝石
parent=`ps -ocommand= -p #{Process.ppid}`.chomp
if parent == "git commit --amend"
# Always allow an amend
puts "always allow git commit --amend"
exit 0
end
git和shell别名在shell输出中展开,所以这也涵盖了这些情况