2013-06-12 51 views
1

我们在我们的回购中使用多个标签标识符。例如。 ABC-1.3.5.234和DEF-1.2.1.25。 describe命令让我几乎什么,我想:git版本相对于特定标签

git的描述--long

ABC-1.3.5.234-33-DEADBEEF

但我真的很想相对于最近的DEF值知道标签在我的历史中。有没有办法指定我想用哪个标签作为计算相对距离的基础?我可以用正则表达式来完成吗?

回答

0

git describe man page是明确的:

如果完全匹配的没有发现,git的描述将走回通过提交历史定位的祖先犯已被标记。祖先的标签将与输入提交的SHA-1的缩写一起输出。

如果在步行过程中发现多个标签,那么将选择具有最少提交与输入提交不同的标签并输出
这里的最少提交数不同定义为git log tag..input将显示的提交数将是可能的最小提交数。

所以,你可能需要编写一个脚本:

  • git describe
  • 采取提交发现git describe犯下
  • 重复,直到你得到的标签,你正在寻找
  • 在该循环期间在所找到的标记对象之上总结所有编号'n'
  • 构建并输出结果字符串:DEF-xxx-n-DEF_SHA1
+0

唉。就是这样。我希望有一些不那么聪明,更灵活的东西。也就是说,Git的聪明才智通常让我的生活变得更加简单。 – ScaryGhast