使用capistrano发布,是否可以知道使用GIT运行哪个版本?还是什么?

时间:2011-04-28 01:02:29

标签: ruby-on-rails git capistrano

我使用capistrano将代码推送到我的服务器(也使用git)。

然后我在笔记本电脑上进行了更改,但没有发布到服务器上。

我想知道我推送到服务器的git版本,以便我可以回滚到该版本。

这可能吗?

我知道我应该使用标签,但有点晚了,希望我能弄清楚我推送到服务器的版本,所以我可以回滚到那个版本或者至少从那个版本到当前构建的版本看看是什么从那以后发生了变化。

3 个答案:

答案 0 :(得分:9)

Capistrano应该在服务器上的#{your_app}/current下放置一个REVISION文件,部署提交的SHA:

类似于:

     git diff `ssh your_user@your_server "cat /path/to/your/app/current/REVISION" `

应该为你找到合适的差异。

答案 1 :(得分:3)

是的,你可以查看你的reflog。

git reflog

但是你应该在发布时进行标记。

希望这有帮助

答案 2 :(得分:-1)

git fetch
git log origin/master -1

fetch与您的服务器同步,log origin/master显示服务器git repo的日志,而不是您的本地存储库。 -1告诉它只显示最后一次提交。这将显示服务器repo上最后一次提交的提交哈希和消息。

如果您的服务器在您的遥控器中列为origin以外的其他服务器,或者您的服务器使用master以外的分支,则您必须更改该服务器。但是“origin”和“master”是默认值,如果你没有改变它们是标准惯例。

<subjective> 除非您明确地对软件进行版本控制(例如,在创建gem时),否则每次部署应用程序时都不必添加标记。这很快就会变得笨拙。使用git,可以像使用标记一样使用提交哈希。</subjective>