如何查看特定分支上的上一个标记?

时间:2017-05-16 14:46:25

标签: git

我们的自动安装脚本应该像这样工作:

  1. 克隆一些特定标签
  2. 运行安装脚本
  3. 如果出现问题,请运行回滚脚本
  4. 回滚脚本应该像这样工作:

    1. 运行一些回滚下标
    2. 查看production分支
    3. 中的上一个代码
    4. 运行上一版本的一些下标
    5. 如何做粗体部分?我知道如何获取之前的 commit (~1),但是如何获取被标记的那个?

2 个答案:

答案 0 :(得分:2)

git describe --tags --abbrev=0 <commit>会从提交中提供最新的标记。

答案 1 :(得分:1)

你需要某种约定来完成这项工作。到目前为止,您知道您想要找到一个可从分支到达的标记,并且它应该是您找到的第一个标记(不计算当前版本的标记?如果可以从{{1}访问该标记,我不清楚} ...但无论如何......)

这还不足以继续git。

一种解决方案是在“先前版本”上始终具有特定标签。回滚步骤2将执行production,释放步骤4将是“如果我们没有回滚,则移动git checkout prev_release标记”。

或者,如果您的构建服务器保留其repo并且始终将其签出到最新的生产版本,那么您可以使用reflog。 prev_release。如果您在签出新版本的标签之前重新克隆,则无法使用。 (我不清楚,因为你说“克隆一些特定的标签”,这是一种不精确的语言。你签出一个特定的标签,你可以使用git checkout -选项{{1} }。)

或者,如果您的标记名称遵循模式,则可以计算以前的标记名称(但如果标记是版本号,通常这不是一个可靠的想法)。

或者,如果你使用像gitflow这样的东西,你的生产分支上的每个提交都是一个版本,你可以说-b(或clone如果你已经合并了新版本)。这是关于gitflow的非常好的事情之一。