От Мерзавца 1.8.2 существует новый рычаг, вызванный перед операцией нажатия: предварительное нажатие , Если возвраты сценария кроме 0 операция нажатия будет отменена.
Упоминание в информации о версии: https://Образец github.com/git/git/blob/master/Documentation/RelNotes/1.8.2.txt#L167
Я использую функцию для этого:
current_branch() {
local ref=$(git symbolic-ref HEAD 2> /dev/null) || return
echo ${ref#refs/heads/}
}
gp() {
local post_push="$(git rev-parse --git-dir)/hooks/post-push"
git push "$@" && {
[[ -x "$post_push" ]] && "$post_push" "$(current_branch)" "$@"
}
}
compdef _git gp=git-push
compdef часть для ZSH.