Git pre-push hook не работает с git push - PullRequest
0 голосов
/ 17 января 2019

Я на моей тестовой ветке:

$git branch
  master
* testbranch

Вот мой код в .git/hooks/pre-push файле:

#!/bin/bash
protected_branch='testbranch'
current_branch=$(git symbolic-ref HEAD | sed -e 's,.*/\(.*\),\1,')

if [ $protected_branch = $current_branch ]
    then
            echo "Test"
            pwdlsfail

            rc=$?
            if [[ $rc != 0 ]] ; then
                echo "test failed - push denied. Run tests locally and confirm they pass before pushing"
                exit $rc
            fi
else
# Everything went OK so we can exit with a zero
    exit 0
fi

Пробовал запуск кода выше в виде сценария оболочки и работает нормально:

$./1.sh  
Test
./1.sh: line 8: pwdlsfail: command not found
test failed on rev  - push denied. Run tests locally and confirm they pass before pushing

Но хук pre-push по-прежнему не вызывается с git push origin testbranch, я что-то упустил?

1 Ответ

0 голосов
/ 17 января 2019

Из вашего описания звучит, что вы пытаетесь вставить хук pre-receive в ваш локальный репозиторий. Это не так - крючок pre-receive должен быть на вашем пульте. Если вы хотите запустить что-то локально, прежде чем нажать, используйте хук pre-push.

В документации есть несколько других хуков, которые также могут оказаться полезными.

...