无论正在使用的构建/部署过程如何,是否有办法显示使用git
启动最新部署的分支?
我意识到部署和git是无关的,所以我不是在一个命令之后。
为了说明我的意思,想象一下,您之前正在开展一个您尚未开展工作的项目,并且您不确定部署了哪个分支。仅通过一系列git
命令找到它是不是很好?
答案 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
会快速转发到release
(git push origin release:master
),现在v2
就会生效。< / LI>
如果发布候选版本在任何时候都未通过测试,release
分支将被丢弃并重新回到master
(git push -f origin master:release
),因此feature-Y
不再是其中一部分主线。但是,v2
仍然存在于后代的git中。