You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何获取GitHub最新发布标签对应的提交哈希ID?

获取特定版本提交哈希的两种Bash方案

没问题,我给你整理了两种简单直接的方案,都是一行命令就能搞定,还能直接嵌入到你的脚本里,完全不用复杂的Bash知识:

方案一:通过提交消息匹配最新版本提交

你可以用git log筛选出所有以version uped开头的提交,然后只取最新的那一个的哈希值:

# 获取最新的"version uped"开头提交的短哈希
latest_version_hash=$(git log --grep="^version uped" --format="%h" -n 1)

参数解释:

  • --grep="^version uped":精确匹配version uped开头的提交消息(^符号确保是开头,避免匹配到包含该字符串的其他提交)
  • --format="%h":只输出提交的短哈希(如果需要完整哈希,换成%H即可)
  • -n 1:只返回最新的1条结果

之后直接在rebase命令里用这个变量就行:

git rebase -i $latest_version_hash

方案二:通过最新标签获取对应提交哈希

因为你提到这些版本提交都会打标签作为发布节点,直接取最新标签对应的哈希会更准确:

# 获取最新标签对应的短哈希
latest_tag_hash=$(git rev-parse --short $(git describe --abbrev=0 --tags))

参数解释:

  • git describe --abbrev=0 --tags:找出仓库里最新的标签(忽略轻量标签/附注标签的差异,只取最新的)
  • git rev-parse --short:把标签转换成对应的提交短哈希(要完整哈希就去掉--short

同样,直接用变量执行rebase:

git rebase -i $latest_tag_hash

小提示

如果你的脚本需要确保命令执行成功,可以加个简单的判断,避免找不到目标提交时出错:

latest_version_hash=$(git log --grep="^version uped" --format="%h" -n 1)
if [ -z "$latest_version_hash" ]; then
  echo "未找到匹配的版本提交!"
  exit 1
fi
git rebase -i $latest_version_hash

内容的提问来源于stack exchange,提问作者ArekBulski

火山引擎 最新活动