Как добавить подмодуль git и добавить его в релиз? - PullRequest
0 голосов
/ 28 ноября 2018
git clone my-new-repo-url
mkdir deps
cd deps
git submodule add -b 6.2.0 https://github.com/leethomason/tinyxml2.git

yields

fatal: 'origin/6.2.0' is not a commit and a branch '6.2.0' cannot be created from it
Unable to checkout submodule 'deps/tinyxml2'

не заполняет .gitmodules, но создает папку .git/modules/deps/tinyxml2 и добавляет репо в deps/tinyxml2

Я думал, что делал это раньшеи он заполнил бы .gitmodules

[submodule "deps/tinyxml2"]
    path = deps/tinyxml2
    url = https://github.com/leethomason/tinyxml2.git
    branch = 6.2.0

, но теперь он не работает, что случилось?

1 Ответ

0 голосов
/ 28 ноября 2018

Ветвь и тег выпуска не одно и то же.Филиал может продолжать развиваться и меняться со временем.Наличие флага в .gitmodules branch = something означает, что подмодуль будет отслеживать эту ветку при запросе на обновление.


git submodule add https://github.com/leethomason/tinyxml2.git заполняет .gitmodules

[submodule "deps/tinyxml2"]
path = deps/tinyxml2
url = https://github.com/leethomason/tinyxml2.git

Затем вручную проверяетсянужный тег в субмодуле с помощью

cd deps/tinyxml2
git checkout 6.2.0

Добавить / зафиксировать / нажать с помощью

git commit -am "adding and commiting all in one command"
git push

Добавляет субмодуль в репозиторий, и в браузере мы можем увидеть

enter image description here

где c1424ee4 - конкретный коммит, в котором был сгенерирован этот релиз-тег

Теперь делаем новый клон в другую папку

git clone my-new-repo-url
git submodule update --init --recursive

Проверен ли субмодуль с тем же тегом выпуска 6.2.0 (commit c1424ee4)

...