【问题标题】:How to view remote Git revision on Heroku如何在 Heroku 上查看远程 Git 版本
【发布时间】:2011-01-17 21:57:25
【问题描述】:

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

对于那些不熟悉它的人,Heroku 的创建脚本会生成一个远程 git 存储库,您可以将其推送到该存储库。推送后,代码会神奇地部署。

Heroku 将远程存储库添加到本地存储库,格式为:

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

Heroku 手册中的更多信息"Deploying with Git"

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

【问题讨论】:

    标签: git heroku git-remote


    【解决方案1】:

    正确答案其实就是这么简单。你不需要检查任何东西,也不需要求助于 COMMIT_HASH 黑客(这在 Cedar 堆栈上不起作用)。您只需:git ls-remote <remote>

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

    【讨论】:

    • 所以这会显示特定远程存储库指向的版本?
    • 获取此消息的输出并轻松查看 git 提交日志和文本差异:git ls-remote heroku | awk 'END{print $1}' | xargs git show
    • @BobbyNorton 的评论是直截了当的答案。不错。
    【解决方案2】:

    如果您刚刚推送并想确保您是最新的,那么您可以运行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 会给你剩下的故事。

    【讨论】:

    • 非常感谢您的回答!我到处找它。
    • 实际上并没有告诉你参考
    • 有没有办法像在 github 仓库中一样在线查看文件本身?
    【解决方案3】:

    您现在可能需要heroku releases,您会看到大约 5 次提交。至少是一个开始。

    【讨论】:

    • 谢谢。这实际上向我展示了我想要找出的内容(在回滚实际运行的内容之后)。
    【解决方案4】:

    怎么样

    git log heroku/master
    

    【讨论】:

    • 根据您的部署方式,master 分支引用可能会或可能不会更新为已部署的 SHA。
    【解决方案5】:

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

    无证救援:

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

    【讨论】:

    • 这很好,但有什么办法可以得到最后的 git 提交。我检查了 ENV 没有任何可用于日期的变量。
    • 这不再适用于 Cedar,如果有替代品?
    • 我收到了'heroku console' has been disabled (devcenter.heroku.com/changelog-items/109)。我尝试了heroku run "ENV['COMMIT_HASH']",但我得到了bash: ENV[COMMIT_HASH]: command not found。当我使用echo 时,我得到了字符串ENV[COMMIT_HASH]
    • 您可以通过运行heroku run console 访问Cedar 堆栈上的Rails 控制台,并且您可以通过运行heroku run echo $ENV['COMMIT_HASH'] 查看ENV['COMMIT_HASH'] 变量内部的内容(因为它是一个环境变量,所以您需要'$' - 很像echo $PATH)。
    【解决方案6】:

    heroku 在下面使用普通的旧 Git,所以..

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-04
      • 2011-03-03
      • 2021-03-04
      • 1970-01-01
      • 2018-07-09
      • 2018-10-22
      相关资源
      最近更新 更多