0

我正在开发一个简单的打包工具,用于检查某些内部版本字符串(从源代码中提取)是否与 git 标签匹配。目标是确保我的程序可以在运行时显示它的版本号,并且这个数字将由我的存储库中的标签标识。

基本上我需要检查两件事:

  • 存储库在打包时没有未提交的代码(空git diff)。
  • 标记后没有提交(git describe --tags返回预期的标记名称)

因为它要包含在脚本中,所以我知道我不应该使用 git瓷器命令,因此我不应该解析 git diff 输出或调用 git describe。

我怎样才能只使用 git 管道命令来做到这一点?

4

1 回答 1

2

要确定工作副本是否干净(没有未提交的更改),请使用git status --porcelain,其输出是“在 Git 版本中保持稳定且无论用户配置如何”。(有关详细信息,请参阅链接的手册页。)

要查看当前签出的修订版本是否与您想要的标签相同,您可以使用git rev-parse: 必须打印相同的哈希git rev-parse HEADgit rev-parse $TAGNAME^{}。参数是标签的名称,后跟一个插入符号,然后是一个左大括号和一个右大括号;this 指的是被标记的提交,而不是标记本身(它也是一个带有哈希的 git 对象);有关此表示法的更多信息,请参见手册页gitrevisions

于 2013-05-16T09:50:52.553 回答