Итак, у меня есть репозиторий GIT с парой подмодулей. Теперь я создал на своем веб-сервере перехватчик «post-update», который автоматически развертывает мой веб-сайт при обновлении.
Вот так выглядит мой хук после обновления:
#!/bin/sh
rm -rf /home/my_user/public_html/my_website/*
unset GIT_INDEX_FILE
export GIT_WORK_TREE=/home/my_user/public_html/my_website/
export GIT_DIR=/home/my_user/gitrepos/my_website.git
git checkout -f
Все работает отлично, за исключением того, что каталоги подмодулей не экспортируются ... И это мой вопрос. Как я могу развернуть репозиторий GIT и его подмодули с помощью обработчика post-update?
Заранее спасибо!
Хорошо, я сделал скрипт, который избегает использования открытого репозитория и игнорирует receive.denyCurrentBranch
#!/bin/sh
# DIR VARS
DIR_GIT="/home/my_user/gitrepos/my_repo.git"
DIR_HTTP="/home/my_user/public_html/my_website"
unset GIT_DIR
# Recreate HTTP dir
rm -rf $DIR_HTTP
mkdir $DIR_HTTP
# Clone git repository
git clone $DIR_GIT $DIR_HTTP
# import submodules
cd $DIR_HTTP
git init --bare $DIR_HTTP
git submodule init
git submodule update
# delete unnecessary git repository in http dir
rm -rf $DIR_HTTP/.git
Любые улучшения приветствуются
Он должен работать, за исключением того, что вы можете добавить, для ухода за этими подмодулями:
git submodule init
git submodule update
Смотрите также Использование git submodule update --init на обработчике сообщения если у вас есть сообщения об ошибках.