git: подмодуль отслеживания текущей ветки - PullRequest
1 голос
/ 06 марта 2019

Согласно документации git , я должен иметь возможность выполнить эту команду:

git submodule add -b . https://my/repo

И добавить субмодуль, который будет отслеживать заголовок текущей ветвиСупер проект.

Ветка репозитория для добавления в качестве субмодуля.Название ветки записывается как submodule..branch в .gitmodules для обновления --remote.Особая ценность.используется, чтобы указать, что имя ветви в подмодуле должно совпадать с именем текущей ветви в текущем хранилище.

Но когда я делаю это, я получаю эту ошибку:

смертельно: «происхождение /»это не коммит, а ветка '.'из него нельзя создать

Я использую git 2.21.Я полностью прочитал инструкцию?

Ответы [ 2 ]

1 голос
/ 11 марта 2019

git submodule add, похоже, не имеет никакого кода, который выполняет какую-либо проверку точки. После клона он попытается извлечь ветку ".", Которая, естественно, не существует.

Но, git submodule update --remote имеет проверку и использует "." специально.

Чтобы заставить это работать, вам нужно сделать:

  1. git submodule add -b master https://my/repo
  2. Отредактируйте файл .gitmodules и измените ветвь с главной на точку, "."
  3. git submodule update --remote
  4. Прибыль

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

Является ли документация просто неясной, или существует ошибка при добавлении подмодуля, я не уверен.

0 голосов
/ 07 марта 2019

Параметры -b требует имя ветви в хранилище https://my/repo. Например, master:

git submodule add -b master https://my/repo

Git не может "отслеживать заголовок текущей ветки супер проекта". Ветвь должна быть задана явно.

Когда вы переключаете ветку суперпроекта с помощью git checkout, git не переключает ветки субмодулей автоматически - вы должны запускать git submodule update вручную или из post-checkout hook.

См. Почему обновление подмодуля git не выполняется автоматически при проверке git?

https://stackoverflow.com/search?q=%5Bgit-submodules%5D+switch+branch

...