Как выполнить фиксацию в родительском проекте с изменениями из подмодуля с помощью ловушки precommitter - PullRequest
0 голосов
/ 26 декабря 2018

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

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

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

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

https://b.radikal.ru/b12/1812/1b/7d23ee4e948b.jpg

На экране № 2 Iя запускаю git status, чтобы снова увидеть эти сообщения, но осталось только одно сообщение - все готово и проиндексировано - для фиксации

https://d.radikal.ru/d13/1812/ad/7c2201d4f68d.jpg

На экране 3 я выполняю фиксацию сноваа затемкоммит появляется в родительском проекте

https://b.radikal.ru/b36/1812/2c/3e133ddf3a45.jpg

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

Прошу прощения за ссылки, стек расскажет о 10 репутации.

1 Ответ

0 голосов
/ 26 декабря 2018

Я все еще нашел причину, почему это происходит.Дело в том, что git add в pre-commit работает не во всех версиях, и об этом много говорят.

Git add в хуке pre-commit, а не в подготовительном файле для commit

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

...