Git 如何知道一个标签是否是裸存储库中另一个标签的快速转发?

Git 如何知道一个标签是否是裸存储库中另一个标签的快速转发?,git,teamcity,Git,Teamcity,我们要进行构建验证,我们要确保新版本具有上一版本的所有提交。我们正在标记每个新版本 我们正在使用:git merge nextversiontag-no commit-ff only,但该命令仅适用于完整的存储库。Team City 8克隆了一个空存储库。如果您只想知道是否可以从一个标记快速前进到另一个标记,那么这只是问一个问题:通过沿着提交图跟随父级引用是否可以从新标记访问旧标记 您可以使用以下方法回答该问题: git merge-base --is-ancestor <old-tag&

我们要进行构建验证,我们要确保新版本具有上一版本的所有提交。我们正在标记每个新版本


我们正在使用:git merge nextversiontag-no commit-ff only,但该命令仅适用于完整的存储库。Team City 8克隆了一个空存储库。

如果您只想知道是否可以从一个标记快速前进到另一个标记,那么这只是问一个问题:通过沿着提交图跟随父级引用是否可以从新标记访问旧标记

您可以使用以下方法回答该问题:

git merge-base --is-ancestor <old-tag> <new-tag>; echo $?
如果输出为0,则可以从新标记访问旧标记,如果输出为1,则不能访问。$?是最后一个命令的错误代码的Bash语法


如果您计划为构建验证执行其他操作,则需要更新您的问题,以澄清您计划执行的操作。

如果您只想知道是否可以从一个标记快速前进到另一个标记,然后,这只是简单地问了一个问题:通过沿着提交图跟随父引用,是否可以从新标记访问旧标记

您可以使用以下方法回答该问题:

git merge-base --is-ancestor <old-tag> <new-tag>; echo $?
如果输出为0,则可以从新标记访问旧标记,如果输出为1,则不能访问。$?是最后一个命令的错误代码的Bash语法


如果您计划为构建验证做其他事情,那么您需要更新您的问题,以澄清您计划做什么。

成功了,谢谢。你能告诉我什么是echo$?&&echo$?||回声$?是吗?只是想知道:&&…| |。。。如果设置了-e,则避免退出;回声$?更容易输入:-@torek这会更容易,我会更新我的答案,谢谢@纸杯蛋糕,是一个选项-是特定于某些git版本的祖先。我有git 1.7.1,我发出了您解释过的命令,但它说,如下:git merge base-is-Absential master test1_分支错误:未知选项'is-Absential'@user1562655它只可用。你为什么要使用如此古老的Git版本?这很有效,thx。你能告诉我什么是echo$?&&echo$?||回声$?是吗?只是想知道:&&…| |。。。如果设置了-e,则避免退出;回声$?更容易输入:-@torek这会更容易,我会更新我的答案,谢谢@纸杯蛋糕,是一个选项-是特定于某些git版本的祖先。我有git 1.7.1,我发出了您解释过的命令,但它说,如下:git merge base-is-Absential master test1_分支错误:未知选项'is-Absential'@user1562655它只可用。为什么要使用如此古老的Git版本?