簡體   English   中英

使用git子樹簽出特定標簽

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM