Ошибка в bash скрипте. Обновляем git репозитории во вложенных папках
У меня есть структура папок с сабмодулем
- sub
- repo1
-- sub - repo2
-- sub - repo3
-- sub
Хочу после обновления сабмодуля - пройтись по папкам(репозиториям) и сделать пуш с новым коммитом сабмодуля (обновить его в репозиториях)
Написал bash скрипт без find (выполняю в папке на уровень выше, чем структура выше)
for i in */sub; do (echo i; git pull; cd ..; git add .; git commit -m "Update submodule"; git push -u origin master); done
Ожидаю: Пройдусь по всем папкам с сабмодулем, зайду в папку /sub, сделаю там git pull, вернусь на уровень вверх и сделаю коммит.
Что получаю:
fatal: не найден git репозиторий (или один из родительских каталогов): .git
В моих директориях точно есть .git. И если делать эти команды руками - все ок. Я где-то ошибаюсь в путях, но не понимаю где, и как фиксить.
Буду благодарен помощи
Ответы (1 шт):
Как верно подсказали в комментах - for не заходит в директории.
Все пофиксилось захождением в cd $i
for i in */sub; do (echo $i;
cd $i
git checkout master;
git pull;
cd ..;
git add .;
git commit -m "UPD SUB REPO";
git push -u origin master);
done