如何添加git子模块并将其标记为发行版?

时间:2018-11-28 17:42:02

标签: git git-submodules

git clone my-new-repo-url
mkdir deps
cd deps
git submodule add -b 6.2.0 https://github.com/leethomason/tinyxml2.git

收益

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中添加一个仓库。

我以为我以前这样做过,它将用.pp填充.gitmodules

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

但是现在不起作用怎么回事?

1 个答案:

答案 0 :(得分:0)

分支和发布标签不是同一件事。分支机构可能会继续发展并随着时间的推移而变化。在.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(签出c1424ee4)下签出子模块