如何在Heroku上查看远程Git修订版


85

为了部署到Heroku,我使用git push heroku master。但是,我如何查看我将哪个修订版本推到了heroku?(我经常怀疑我是否将最新版本推高了)

对于不熟悉它的人,Heroku的create脚本会生成您推送到的远程git存储库。推送后,代码将被神奇地部署。

Heroku以以下形式将远程存储库添加到本地存储库:

$ git remote add heroku git@heroku.com:appname.git

Heroku的手册“使用Git部署”中的更多信息

问题是:如何在Heroku存储库中查看最新版本?

Answers:


63

如果您刚刚推送并想确保自己是最新的,则可以运行,然后git remote show heroku将看到类似以下的输出:

* remote heroku
  Fetch URL: git@heroku.com:XXX.git
  Push  URL: git@heroku.com:XXX.git
  HEAD branch: master
  Remote branch:
    master tracked
  Local ref configured for 'git push':
    master pushes to master (up to date)

(up to date)在年底将被替换(fast forwardable),如果它不是最新的。

或者,如果您想查看heroku远程服务器的完整提交日志,那么我唯一知道的方法就是先将其检出。 git checkout heroku/master将为您提供当前的提交哈希和提交注释:HEAD is now at <short commit hash>... <commit comment>,并git log为您提供故事的其余部分。


非常感谢您的回答!我到处都在寻找它。
tbaums 2011年

3
并未真正告诉您裁判
Obie 2012年

有什么办法可以像在github repo中一样在线查看文件?
eran otzap

128

正确的答案实际上是如此简单。您无需检出任何东西,也不必诉诸COMMIT_HASH骇客(在Cedar堆栈上不起作用)。您需要做的只是:git ls-remote <remote>

 > git ls-remote heroku
ddaszxcewb585d3a3c00de816a197b14462791a3        HEAD
ddaszxcewb585d3a3c00de816a197b14462791a3        refs/heads/master

这样可以向您显示特定远程存储库所指向的版本?
EE33

12
要获取此消息的输出并轻松查看git commit日志和文本差异:git ls-remote heroku | awk 'END{print $1}' | xargs git show
Bobby Norton

@BobbyNorton的评论是这里的直接答案。真好
Ben Hull

45

您可能现在想要heroku releases,您将看到5次提交。至少是一个开始。


1
谢谢。这实际上向我展示了我想查找的内容(回滚后实际运行的内容)。
Cymen 2012年

24

关于什么

git log heroku/master

根据您的部署方式,master分支引用可能会也可能不会更新为已部署的SHA。
贾斯汀

11

如果您遇到了这种情况,例如我刚才所做的那样,同事将您的heroku应用回滚到一个未显示的发行版,heroku releases因为他们只跟踪2个发行版... heroku / master的签出方法将无济于事,因为HEAD不再部署了。

无证救援:

$ heroku console "ENV['COMMIT_HASH']"
"12abcdef"

很好,但是有什么方法可以获取最后的git commit。我检查了ENV没有任何可用于日期的变量。
大卫,

10
如果有替代产品,这在Cedar上将不再起作用。
2011年

我得到了'heroku console' has been disableddevcenter.heroku.com/changelog-items/109)。我试过了,heroku run "ENV['COMMIT_HASH']"但是我得到了bash: ENV[COMMIT_HASH]: command not found。当我使用时,echo我得到的字符串ENV[COMMIT_HASH]
Guyaloni

您可以通过运行来访问Cedar堆栈上的Rails控制台,heroku run console并可以通过运行来查看ENV['COMMIT_HASH']变量内部的内容heroku run echo $ENV['COMMIT_HASH'](因为它是环境变量,所以需要'$'-非常像echo $PATH)。
倾斜

-1

heroku在下面使用普通的旧Git,因此..

显示当前分支上的最新5次提交: git log -5

通过Git的gui显示提交历史: gitk

查看当前状态(如果您有任何未提交的文件,它将显示): git status

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.