我使用capistrano将代码推送到我的服务器(也使用git)。
然后我在笔记本电脑上进行了更改,但没有发布到服务器上。
我想知道我推送到服务器的git版本,以便我可以回滚到该版本。
这可能吗?
我知道我应该使用标签,但有点晚了,希望我能弄清楚我推送到服务器的版本,所以我可以回滚到那个版本或者至少从那个版本到当前构建的版本看看是什么从那以后发生了变化。
答案 0 :(得分:9)
Capistrano应该在服务器上的#{your_app}/current
下放置一个REVISION文件,部署提交的SHA:
类似于:
git diff `ssh your_user@your_server "cat /path/to/your/app/current/REVISION" `
应该为你找到合适的差异。
答案 1 :(得分:3)
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>