Git显示最后一个分支部署

时间:2016-06-10 09:15:58

标签: git bash

无论正在使用的构建/部署过程如何,是否有办法显示使用git启动最新部署的分支?

我意识到部署和git是无关的,所以我不是在一个命令之后。

为了说明我的意思,想象一下,您之前正在开展一个您尚未开展工作的项目,并且您不确定部署了哪个分支。仅通过一系列git命令找到它是不是很好?

1 个答案:

答案 0 :(得分:1)

如果你想真正假设构建过程,这是不可能的,因为这意味着你不能假设构建过程会将任何记录记录回你的版本控制系统(例如你可以有一个部署过程,只需在某个地方的盒子上发出git pull

如果您假设您的构建过程是从给定分支构建(例如master),并在每次构建时标记分支,那么git describe master将告诉您最新的标记在master分支。

在这种情况下,这可能只会告诉您最新的 build ,而不是最新的部署。从这个意义上说,标签是候选版本,您必须做出更多假设才能找到最新的部署。

我们使用以下策略:

M─┐ [v2] [release] Merge branch 'feature-Y' into release
│ o [feature-Y] Commit F
│ o Commit E
│ o Commit D
M─┤ [v1] [master] Merge branch 'feature-X' into release
│ o [feature-X] Commit C
│ o Commit B
│ o Commit A
I─┘ Initial commit

这告诉你一些事情:

  • 我们只维护此应用程序的一个版本。
  • master指向当前的生产版本。 (所以v1目前正在上线。)
  • 提交是在功能分支中进行的,并在准备好时合并到release
  • 此处,新的feature-Y是我们的候选发布版,已由我们的构建过程构建并标记为v2
  • 将其部署到预生产环境进行测试。
  • 测试完成后,构建将升级为实时。
  • 一旦所有人都很高兴它在现场工作,master会快速转发到releasegit push origin release:master),现在v2就会生效。< / LI>
  • 重复!

如果发布候选版本在任何时候都未通过测试,release分支将被丢弃并重新回到mastergit push -f origin master:release),因此feature-Y不再是其中一部分主线。但是,v2仍然存在于后代的git中。