Почему в Git подмодуля обновление не автоматическое включение ГИТ кассе?


при переключении ветвей с git checkout я бы предположил, что большую часть времени вы хотите обновить свои подмодули.

  • В какой ситуации вы не хотите обновить подмодули после переключения?
  • что сломалось бы, если бы это было сделано автоматически git checkout?

обновление с Пример:

  • ветвь A имеет подмодуль S на 3852f1
  • ветвь B имеет подмодуль S на fd72d7

на ветке A git checkout B приведет к рабочей копии ветви B с подмодулем S в 3852f1 (с измененным S). обновление подмодуля git будет оформить заказ на fd72d7.

2 60

2 ответа:

Я считаю, что подмодули, не обновляющиеся автоматически, соответствуют целям развития Git. Git предназначен для работы в распределенном режиме и не предполагает, что вы даже можете подключиться к нелокальному репозиторию, если вы явно не скажете об этом. Git не автоматическое обновление подмодуля будет ожидаемым поведением, когда вы думаете об этом.

с учетом сказанного, если вы знаете, что вы всегда хотите, чтобы эти суб-модули были втянуты, и вы знаете, что вы бы никогда не отходите от этих подмодулей в другой локальный репозиторий, тогда он не должен ничего ломать, если вы автоматически обновили их после проверки.

git checkout --recurse-submodules will был добавлен в git 2.13

Это упоминается в примечаниях к выпуску по адресу: https://github.com/git/git/commit/e1104a5ee539408b81566066aaa6963cb87d5cd6#diff-c24776ff22455a30fbb78e378b7df0b0R139

submodule.recurse опция была добавлена в git 2.14

как:

git config --global submodule.recurse true

man git-config говорит:

указывает, если команды рекурсии в подмодулях по умолчанию. Это относится к все команды, которые имеют . По умолчанию false.