Как сделать подмодуль с отсоединенной головкой, прикрепленной к фактической головке?

Когда я добавляю подмодуль Git в репозиторий Git, подобный этому,

git submodule add ssh://server/proj1/ proj1
git submodule init
git submodule update

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

Я не знаю, как это работает, так или иначе, похоже, существует ветвь прокси. Я решил это, переключившись на мастер-ветвь.

cd proj1
git checkout master

Это приведет к переключению текущего ведущего ведущего HEAD, но это не обновляет связь. Итак, если вы снова клонируете весь репозиторий, он все равно будет связан со старой версией.

Если я хочу, чтобы он всегда был связан с последней версией (HEAD), что мне делать?

Ответ 1

Обновление март 2013 года

Git 1.8.2 добавлена ​​возможность отслеживания веток.

"git submodule" начал изучать новый режим с помощью кончика удаленной ветки (в отличие от интеграции с фиксацией, записанной в суперпроекте gitlink).

# add submodule to track master branch
git submodule add -b master [URL to Git repo];

# update your submodule
git submodule update --remote 

См. также Учебник Vogella по подмодулям.


Оригинальный ответ (декабрь 2011 г.)

Добавленный подмодуль

будет находиться в отключенном режиме HEAD

Да, подмодуль - это ссылка на конкретный коммит, а не ветвь.
Итак:

  • Если вы выберете фиксацию SHA1 (или тег), вы находитесь в автономном режиме HEAD.
  • Если вы проверяете ветку (как вы делали с ветвью master субмодуля), вы можете создать другие коммиты поверх этой ветки (но вам придется вернуться к родительскому репо, чтобы зафиксировать упомянутый родительский объект а также для записи нового созданного субмодуля, который вы создали)

Подробнее см. "Истинная природа подмодулей".

Если вам всегда нужна последняя фиксация другого репо, самым простым способом было бы объединить их вместе (например, с слиянием поддерева).
См. "Слияние 2-го репозитория GIT" для деталей и ссылок.