无论使用哪种构建/部署过程,有没有一种方法可以显示从哪个分支最新部署的启动git
?Git show上一次部署分支
我知道部署和git是无关的,所以我不是在一个命令之后。
为了说明我的意思,想象一下您之前从未参与过的项目,并且您不确定部署了哪个分支。用一系列的git
命令找到它不是很好吗?
无论使用哪种构建/部署过程,有没有一种方法可以显示从哪个分支最新部署的启动git
?Git show上一次部署分支
我知道部署和git是无关的,所以我不是在一个命令之后。
为了说明我的意思,想象一下您之前从未参与过的项目,并且您不确定部署了哪个分支。用一系列的git
命令找到它不是很好吗?
这是不可能的,如果你想真正假设构建过程,因为这意味着你不能假设构建过程记录任何东西回到你的版本控制系统(例如,你可以有一个部署过程只需在某个地方发布git pull
)。
如果您假定您的构建过程是从给定分支构建的(例如master
),并且每次构建时为分支添加标签,则git describe master
会告诉您master
分支中的最新标记。
在这种情况下,这可能只会告诉您关于最新的构建,而不是最新的部署。从这个意义上说,这些标签是候选版本,为了找到最新的部署,你必须做出更多的假设。
我们采用以下策略:
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
正在运行。如果在任何时候发布候选版本没有通过测试,该release
分支被抛弃和倒带回到master
(git push -f origin master:release
),所以feature-Y
是主线不再一部分。然而,v2
仍然存在于后代的git中。
这是非常丰富的,谢谢! –
您至少可以告诉我们您的部署是什么样子。 – PeeHaa
@PeeHaa我是一个普通的命令后,_无论使用的构建/部署过程_ –
构建和部署过程都与git完全无关,所以没有git不会告诉你这一点。然而,一个好的构建过程可能会标记你的构建,所以'git describe'可以[告诉你给定分支中的最新标记](http://stackoverflow.com/questions/1404796/how-to-get-the-latest -tag名,在电流分支功能于GIT)。也许这是一个好的开始? – cmbuckley