Я пытаюсь автоматически обновить свой подмодуль, расположенный в var/www/php/vendor/projectX
при каждой фиксации в супер-проекте var/www
. Я добавил эти строки в файле .git/hooks/post-receive
:Обновление подмодуля Git из post-receive hook
#!/bin/sh
echo "Updating submodules recursively"
pwd
git submodule update --init --recursive
Но я получаю это когда я совершаю на супер-проект:
Counting objects: 8, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 346 bytes | 0 bytes/s, done.
Total 4 (delta 3), reused 0 (delta 0)
remote: Updating submodules recursively
remote: /var/www/.git
remote: No submodule mapping found in .gitmodules for path 'php/vendor/projectX'
To [email protected]:.
3dc2404..bc46dd6 dev -> dev
Соответствующий раздел присутствует в .gitmodules файл, однако, и так файлы в .git/modules. Запуск git submodule update --init --recursive
вручную отлично работает. Это только при запуске с крючка, что он не работает. Спасибо
Большое спасибо, это работает как шарм. Я потратил много времени на поиск этого ответа. –
Зачем нужно cd в папке, если вы предоставляете '--work-tree'? – Clijsters
@Clijsters 3 с половиной года спустя, я не слишком уверен. И теперь я бы написал это 'git -C/var/www подмодуль update --init --recursive' Но, возможно, в то время, подмодули должны были использоваться только из корневой папки. – VonC