【问题标题】:How to know if a tag is a fast foward to another in a BARE repository?如何知道一个标签是否快进到 BARE 存储库中的另一个标签?
【发布时间】:2013-09-03 04:01:18
【问题描述】:

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

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

【问题讨论】:

    标签: git teamcity


    【解决方案1】:

    如果您只想知道是否可以从一个标签快进到另一个标签,那么这只是简单地问一个问题:“旧标签是否可以通过沿着提交图的父引用从新标签访问? "

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

    git merge-base --is-ancestor <old-tag> <new-tag>; echo $?
    

    如果输出为0,则旧标签可从新标签访问,如果输出为1,则不能。 $? 是最后一条命令的错误代码的 Bash 语法。

    如果您打算为您的构建验证做其他事情,那么您需要更新您的问题以阐明您打算做什么。

    【讨论】:

    • 那行得通,谢谢。你能告诉我什么是回声$吗? && 回声 $? ||回声$?有吗?
    • 只是想知道:如果设置了-e&amp;&amp; ... || ... 是否会避免退出? &lt;command&gt;; echo $? 更容易输入 :-)
    • @torek 会更容易,我会更新我的答案,谢谢!
    • @Cupcake,是特定于某些版本的 git 的选项“--is-ancestor”。我有 git 1.7.1,我发出了你所解释的命令,但它说,如下所示: git merge-base --is-ancestor master test1_branch error: unknown option `is-ancestor'
    • @user1562655 它仅适用于since version 1.8.0。为什么要使用这么古老的 Git 版本?
    猜你喜欢
    • 2011-01-14
    • 2018-01-06
    • 1970-01-01
    • 1970-01-01
    • 2013-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-24
    相关资源
    最近更新 更多