Git post commit: skip --amend и rebase
У меня есть пост-коммитный хук, который делает вещи без ruby. Это работает очень хорошо, но в некоторых случаях я хотел бы пропустить выполнение кода, когда я делаю ребаз или когда я делаю commit --amend.
У кого-то есть идея, как я не мог вызвать хук post-commit в этих случаях или какой-либо обходной путь?
Greg
2 ответа
При перебазировании, есть каталог с именем rebase-merge
присутствует в .git
папка. Это может быть подход, чтобы отключить крюк во время rebase
(начало rebase
кстати указывается pre-rebase
крючок).
Учитывая --amend
однако я не могу вам помочь.
Если вы хотите обнаружить git commit --amend с помощью хука, это ваш лучший вариант
удар
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 раскрываются в выходных данных оболочки, так что это относится и к этим случаям
Вдохновение: https://github.com/brigade/overcommit/issues/146