Подтвердить что ты не робот

Git команда синхронизации подмодулей - для чего это нужно?

Я не понимаю из документации, что делает git submodule sync. Пожалуйста, объясните.

4b9b3361

Ответ 1

Git хранит информацию о подмодулях в двух местах. Первый находится в файле с именем .gitmodules, который проверяется в репозитории git. Изменения этого файла распространяются на другие репозитории.

Другое местоположение находится в .git/config, и оно, где git действительно выглядит при выполнении большинства команд.

Итак, представьте, что вы некоторое время работали над проектом, и есть подмодуль под названием foo. Файлы для этого подмодуля извлекаются из некоторого URL-адреса, на самом деле не имеет значения, где. Однако в какой-то момент этот URL-адрес меняется. Возможно, он изменяется так, что подмодуль проверяется с другого сервера или другим путем. Когда вы обновляете свой репозиторий, вы будете копировать файл .gitmodules, но не ваш файл .git/config; вы все равно будете проверять старый URL. Когда вы хотите начать проверку с нового URL-адреса, вы должны запустить git submodule sync, чтобы скопировать новую конфигурацию с .gitmodules на .git/config. git не делает это автоматически, потому что вы могли внести свои изменения в свою конфигурацию и не захотели бы перезаписывать их.