Гуру
Я только что обнаружил, что перехватчики git (предварительное получение, последующее получение) не могут быть запущены при выполнении git-push через HTTP, однако эти перехватчики могут быть вызваны при выполнении git-push через SSH.
Это правильно?
Тогда как я могу заставить git / hooks / pre-receive работать, когда мы используем HTTP в качестве протокола доступа?
/// ----------------------------------------------- ------------------------------------------------- < br> /// @SERVER
/// Это код ловушки после получения
hello.git $ cat hooks/post-receive
#!/bin/bash
while read oldrev newrev ref
do
if [[ $ref =~ .*/master$ ]];
then
echo "Master ref received. Deploying master branch to production..."
#git --work-tree=/var/www/html --git-dir=/home/demo/proj checkout -f
else
echo "Ref $ref successfully received. Doing nothing: only the master branch may be deployed on this server."
fi
done
/// ----------------------------------------------- ------------------------------------------------- < br> /// @ CLIENT
/// Здесь git / hooks / post-receive работает, а git push через SSH.
$ git push
[email protected]'s password:
Counting objects: 5, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (5/5), 390 bytes | 390.00 KiB/s, done.
Total 5 (delta 1), reused 0 (delta 0)
remote: Master ref received. Deploying master branch to production...
To hostxxx.net:/var/www/html/repo/hello.git
a308dbc..82184b8 master -> master