Bitbucket新增标签触发webhook时$.changes[0].toHash代表什么
你在标签推送事件中拿到的toHash是你创建的*注解标签(annotated tag)*本身的对象哈希值,不是标签指向的提交哈希,所以不会出现在常规的git log输出中。
相关说明
- 全0的
fromHash是Git的标准约定,当新增引用(新分支、新标签)时,就会用全0哈希表示该引用此前不存在。 - 你使用
git tag -a创建的是注解标签,这类标签是Git中独立的存储对象,会存储标签名、标签创建人、创建时间、标注信息,同时指向对应的提交,因此会生成独立的哈希值,也就是你拿到的toHash。如果使用不带-a/-s/-u参数的轻量标签,toHash就会直接是标签指向的提交哈希,可以在git log中直接匹配到。
验证方法
你可以在本地执行以下命令验证对应关系:
- 执行
git rev-parse 0.1.0,输出的结果和你在webhook中拿到的toHash完全一致,确认该哈希就是0.1.0这个注解标签的对象哈希。 - 执行
git show b82dd854c413d8e09aaf68c3c286f11ec6780be6,可以看到完整的标签信息,以及该标签指向的提交哈希,这个提交哈希就可以在你的git log输出中找到。
如果需要在后续流程中获取标签指向的真实提交哈希,可以执行命令git rev-parse 0.1.0^{commit}获取。
内容的提问来源于stack exchange,提问作者StoneThrow
相关产品推荐
相关产品推荐

