[英]checkout a specific tag with git subtree
我可以在子樹中使用標簽嗎? 具體問題如下:
我有一個git存儲庫,其中包括一個外部存儲庫作為子樹。 我可以添加此外部存儲庫,並從此存儲庫中簽出特定分支。 使用git subtree pull --prefix=<dir> --squash <remote> <branch>
,來自所選分支的更新效果很好。
現在可以簽出特定標簽了嗎? 我在子樹中找不到有關標簽的某些信息...
實際上,任何參考都應該起作用。 子樹的手冊頁顯示了此內容。
git subtree pull -P <prefix> <repository> <ref>
其中<ref>
可以是SHA,標記或分支。 基本上任何git都可以解析為提交。
git subtree pull --prefix倉庫ref --squash(如果您最初使用squash)。 第一次拉動后,我用一個標簽代替了沒有壓扁的ref並導致了致命的后果:拒絕合並無關的歷史記錄,因為原始拉動已壓扁了。
我找不到使用以下方法在特定標簽或分支上簽出子樹的方法:
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刪除了子樹文件並再次從遠程倉庫讀取樹來解決該問題:
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"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.