@F3NS

Как сделать коммит в родительском проекте с изменениями из сабмодуля при помощи пре-коммит хука?

Разрабатываю pre-commit хук для гита, моделирую ситуация когда разработчик зашел на своей локальной тачке в подмодуль - изменил файл - вернулся в родительский проект и и сделал git add . и git commit после чего сработал данный хук. Весь текст хука значения не имеет оставлю только нужную часть.

Скрин 1. 5c2239c2e1c84712226644.jpeg
Используя git submodule foreach
1) обращаюсь к подмодулю
2) индексирую изменения
3) делаю коммит
Собственно, когда отрабатывает хук я вижу что создался новый коммит в подмодуле
4 шагом я пытаюсь проиндексировать изменения в родительском проекте обращаясб просто git add deploy (это название подмодуля)

Вижу сразу два сообщения
1) о том, что изменения проиндексированы и они попадут в коммит
2) что появились новые коммиты в подмодуле и нужно обновить (??????) и что нет изменений которые попадут в коммит
Изменения на сервер не прилетают как видно из скрина №1

На скрине №2
я выполняю git status чтобы увидеть снова эти сообщения, но осталось только одно сообщение - все готово и индексировано - коммить
5c223a0a790d2371112504.jpegНа скрине №3 я выполняю снова коммит и тогда появляется коммит в родительском проекте

5c223a24dfa8d201984803.jpeg

Вопрос почему это не отрабатывает с первого раза? Перерыл весь stackover.Только начал работать с сабмодулями. Надеюсь на вашу помощь.
  • Вопрос задан
  • 55 просмотров
Пригласить эксперта
Ответы на вопрос 1
@F3NS Автор вопроса
Я все таки нашел причину, почему это происходит. Дело в том, что git add в pre-commit работает не в каждой версии и обсуждений на этот счет много.

https://stackoverflow.com/questions/51778574/git-a...

Его частое поведение он индексирует изменения, но они попадут только в следующий коммит. Т.е у вас появляются сразу два противоречивых сообщения, что изменения проиндексированы и одновременно что есть новые изменения, но они не проиндексированы. Просто хочу добавить, что я потратил 2 дня на поиска ответа.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы