我可以在子树中使用标签吗?以下是一个具体问题:
我有一个git存储库,其中包含一个外部存储库作为子树。
我可以添加此外部存储库并从此存储库中签出特定分支。使用git subtree pull --prefix=<dir> --squash <remote> <branch>
,所选分支的更新效果很好。
现在可以签出特定的标签吗?我无法在子树中找到有关标签的一些信息...
答案 0 :(得分:7)
实际上任何引用都应该有效。子树的手册页显示了这一点。
git subtree pull -P <prefix> <repository> <ref>
<ref>
可以是SHA,标签或分支。基本上任何git都可以解析为提交。
答案 1 :(得分:0)
git子树提取--prefix存储库参考--squash (如果您最初使用squash)。第一次拉动后,我用一个标签代替了没有壁球的ref,并导致了致命的事情:拒绝合并无关的历史记录,因为原始拉动是壁球。
答案 2 :(得分:0)
我找不到使用以下方法在特定标签或分支上签出子树的方法:
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.
但是实际上什么也没做!没有一个文件是“检出”。
我设法通过git删除子树文件并再次从远程仓库读取树来解决该问题:
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"