[英]Get only tags / references of a git remote repository
是否可以在不下載對象/文件的情況下獲取存儲庫的標簽/引用(例如GitHub)?
我的用例是打包一些軟件的最新測試版,這些軟件歷史悠久,因此很難克隆。
理想情況下,在確定我想要使用的標簽后,我可以:
git clone -b "$tag" --depth=1
使用git ls-remote
:
$ git ls-remote -t --refs <URL>
這給出了如下輸出:
8f235769a2853c415f811b19cd5effc47cc89433 refs/tags/continuous
24e666ed73486a2ac65f09a1479e91e6ae4a1bbe refs/tags/continuous-develop
7c2cff2c26c1c2ad4b4023a975cd2365751ec97d refs/tags/v2.0
35b69eed46e5b163927c78497983355ff6a5dc6b refs/tags/v2.0-beta10
您可能還希望傳遞--exit-code
以確保在沒有返回匹配的引用時退出非0
。
要僅獲取標記名稱,請通過:
sed -E 's/^[[:xdigit:]]+[[:space:]]+refs\\/tags\\/(.+)/\\1/g'
:
$ git ls-remote -t --exit-code --refs https://github.com/robert7/nixnote2.git \
| sed -E 's/^[[:xdigit:]]+[[:space:]]+refs\/tags\/(.+)/\1/g'
continuous
continuous-develop
v2.0
v2.0-beta10
建議:
--exit-code
以確保在沒有返回匹配的引用時退出非0
。 https://
版本:它更快,如果你正在打包,你不想冒被要求輸入ssh密鑰的風險。 --sort=-v:refname
按版本而不是按字面順序排序,並在頂部有最大的版本 git -c versionsort.suffix=-
防止2.0-rc
“在2.0
之后”出現 v
開頭,則為'v*'
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.