A (modified content)
примечание для подмодуля не различает не добавленные и добавленные изменения в отслеживаемом контенте, что сбивает с толку, пока вы не поймете, почему это различие здесь не имеет значения.
Когда вы git add
подмодуль, вы добавляете его текущий идентификатор фиксации. Это то, что должно быть восстановлено по пути субмодуля позже, в других проверках в других репозиториях: этот коммит, коммит с этим идентификатором. Все, что записывается в вашем собственном коммите, это идентификатор коммита подмодуля, который нужно найти и проверить там. Если хочешь.
Итак, git status
сообщает вам, что у вас есть новый контент субмодуля, который еще не был зафиксирован. Git позволяет вам фиксировать добавленный, он же кэшированный, или индексируемый, поэтапный контент, безотносительно к любым последующим изменениям в рабочем дереве, что сбивает с толку и даже злит людей, пока они не достигнут своей цели, что вы можете сделать с этим, но когда вы добавляете aka stage или aka cache и т. д. подмодуль, добавляемый контент - это просто идентификатор коммита подмодуля: там есть необходимый маленький шаг заикания, если вы создаете новую историю в рабочем дереве этого подмодуля, вы должны добавить и зафиксировать ваш новый контент, чтобы вы могли разместить новый идентификатор коммита подмодуля в главном индексе.
То есть, вы git add
редактировали новый отслеживаемый контент внутри подмодуля или нет, для репозиториев, использующих этот подмодуль, несущественно, важно то, что вы их зафиксировали, а git status
сообщает вам, что у вас есть незафиксированные изменения к отслеживаемому контенту.
Вам необходимо подключиться к этому подмодулю и (добавить, но вы уже это сделали, и) зафиксировать его новое содержимое. Затем вы можете записать новый идентификатор фиксации субмодуля (строка «Извините, ваш контент находится в другом замке») в индексе основного репо перед фиксацией. Есть причина, по которой git submodule update --init --recursive
не используется по умолчанию.