我可以在子树中使用标签吗?下面是一个具体的问题:
我有一个包含外部存储库作为子树的Git存储库。我可以添加这个外部存储库并从该存储库检出特定分支。使用git subtree pull --prefix=<dir> --squash <remote> <branch>
命令可以成功更新所选分支。
现在,是否可以检出特定标签?我找不到关于子树中标签的信息...
我可以在子树中使用标签吗?下面是一个具体的问题:
我有一个包含外部存储库作为子树的Git存储库。我可以添加这个外部存储库并从该存储库检出特定分支。使用git subtree pull --prefix=<dir> --squash <remote> <branch>
命令可以成功更新所选分支。
现在,是否可以检出特定标签?我找不到关于子树中标签的信息...
实际上,任何引用都可以使用。 subtree 的 man 手册显示了这一点。
git subtree pull -P <prefix> <repository> <ref>
<ref>
可以是 SHA、标签或分支。基本上可以解析为 Git 提交的任何内容。
我找不到一种方法来检出我的子树到特定的标签或分支,使用:
git subtree pull --prefix=my_subtree_dir my_remote tags/my_tag
From ../remotes_dir/my_remote
* tag my_tag -> FETCH_HEAD
Already up-to-date.
但实际上,什么都没做!没有一个文件被“checkout”。
我通过从我的远程仓库中删除子树文件并再次从中读取它们来解决了这个问题:
git rm -r lib3dsp
git read-tree --prefix=lib3dsp/ -u tags/my_tag
以下是我如何配置我的子树:
git remote add <my_remote>
git fetch <my_remote>
git merge -sours --no-commit <my_remote>/master
git read-tree --prefix=<my_subtree_dir> -u <my_remote>/master
git commit -m "merge <my_subtree> repo"