Git - в подмодуле 'git status' не выдает "актуальную" информацию, как в корневом репо - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть git-репо с подмодулем. В корневом репозитории git status дает мне статус ветки по сравнению с удаленной веткой. Например:

On branch develop
Your branch is up-to-date with 'origin/develop'.

Но в репозитории субмодулей у меня нет второй строки. Как я могу получить эту информацию во всех подмодулях? Спасибо.

1 Ответ

1 голос
/ 05 апреля 2019

Когда вы работаете с подмодулями Git, состояние ваших подмодулей будет отключено HEAD по умолчанию.

Когда вы запускаете git submodule update, это был первый раз или когда новый коммит был выдвинуткто-то еще для подмодулей, Git проверит sha1, что корневой проект говорит, что подмодуль должен быть в.

Например,

> git submodule update
> cd <submodule>
> git status
HEAD detached at 59fe3c5232
nothing to commit, working directory clean

Теперь я могу видеть больше информации, используя git log:

> git log --all --decorate --graph --format=oneline
* 59fe3c5232 (HEAD, origin/master, master) Commit details
* 8762eca8d9 Older commit
...

Когда есть ветки, этот журнал будет более интересным: ищите HEAD, чтобы увидеть, где вы находитесь.

На моем примере, если я сейчас это сделаю git checkout master внутри субмодуля, я все еще на коммите, ожидаемом корневым репозиторием, но я также отслеживаю основную ветвь внутри субмодуля.

> git checkout master
> git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean

Но если бы я должен был получить коммит,это не то, что ожидалось от корневого репо, тогда корневое репо будет считать, что необходимо внести изменения.(Чтобы увидеть это, выполните git diff или git status в корневом репо.)

Если кто-то в команде отправляет коммит в субмодуль, в следующий раз я обновлю корневой репо и выполню git submodule updateЯ снова окажусь в режиме отсоединения головы.

Я потрудился бы оформить ветку только в подмодуле, если я действительно работаю над этим подмодулем.

...