Bash 从Git中提取最新的标记版本
我想提取Git存储库的最新版本号。这就是我迄今为止所做的:Bash 从Git中提取最新的标记版本,bash,git-bash,Bash,Git Bash,我想提取Git存储库的最新版本号。这就是我迄今为止所做的: #--- Checking out latest tag printf "%bChecking out tag...%b\n" "${YELLOW}" "${GRAY}" LATEST_TAG=$(git describe --tags) printf "\nChecking out tag %b${LATEST_TAG}%b\n" "${YELLOW}" "${GRAY}" git checkout -b V${LATEST_TAG%
#--- Checking out latest tag
printf "%bChecking out tag...%b\n" "${YELLOW}" "${GRAY}"
LATEST_TAG=$(git describe --tags)
printf "\nChecking out tag %b${LATEST_TAG}%b\n" "${YELLOW}" "${GRAY}"
git checkout -b V${LATEST_TAG%-*} ${LATEST_TAG}
我的问题是,如果git descripe--tags
返回这样的1.0.0-39-gf8f8306
我最终创建了一个分支V1.0.0-39
我想创建一个名为
V1.0.0
的分支,您可以使用awk
:
LATEST_TAG=$(git describe --tags | awk -F - '{print $1}')
您可以使用
awk
:
LATEST_TAG=$(git describe --tags | awk -F - '{print $1}')
你行吗
git checkout-bv${LATEST\u TAG%-*}${LATEST\u TAG}
您可以将%符号加倍,它将匹配以-开头的最长字符串,而不是最短的字符串,而最短的字符串正是单个%所做的
例如git checkout-bv${LATEST_TAG%%-*}${LATEST_TAG}
您可以在此处看到参数扩展的完整列表:在您的行中
git checkout-bv${LATEST\u TAG%-*}${LATEST\u TAG}
您可以将%符号加倍,它将匹配以-开头的最长字符串,而不是最短的字符串,而最短的字符串正是单个%所做的
例如git checkout-bv${LATEST_TAG%%-*}${LATEST_TAG}
您可以在这里看到完整的参数扩展列表:这有点秘密,*但您可以使用--abbrev=0
:
git describe --tags --abbrev=0
*提到它,但你必须知道去哪里看:
--abbrev=
[…]0的
将抑制长格式,仅显示最近的标记
这有点秘密,*但您可以使用--abbrev=0
:
git describe --tags --abbrev=0
*提到它,但你必须知道去哪里看:
--abbrev=
[…]0的
将抑制长格式,仅显示最近的标记
我对GitHub操作的git descripe有一个问题,即:“致命:没有标签可以描述‘160ef4560d8855c9c05f4cae207baeb71b7791f3’”,这显然与整个回购协议不可用有关 但我找到了另一个可行的解决方案,没有这个问题:
git tag --sort=-refname --list "v[0-9]*" | head -n 1
我对GitHub操作的git descripe有一个问题,即:“致命:没有标签可以描述‘160ef4560d8855c9c05f4cae207baeb71b7791f3’”,这显然与整个回购协议不可用有关 但我找到了另一个可行的解决方案,没有这个问题:
git tag --sort=-refname --list "v[0-9]*" | head -n 1
非常感谢你。请加上它作为答案。非常感谢。请将其添加为答案。有效,但我将接受Biffen答案,因为它是最短的。有效,但我将接受Biffen答案,因为它是最短的。有效,但我将接受Biffen答案。有效,但我将接受Biffen答案