5

当环境启动时(environment.rb),我有这段代码可以提取当前 repo 的 git 版本。

APP_VERSION = `git describe --always --long` unless defined? APP_VERSION

那让我打开网站,转到某个页面,看看网站上的版本是正确的。这段代码在EngineYard上运行,但在Heroku上,当应用程序启动时我得到了这个:

fatal: Not a git repository (or any of the parent directories): .git

git describe在heroku上可以运行吗?

4

1 回答 1

6

我认为你不能;当您使用 将您的应用程序部署到 Heroku 时git push,它似乎将其放入存储库中,然后在没有 git 存储库的情况下对您的代码进行干净签出。您可以使用该命令四处寻找heroku run bash,看看那里有什么。这是我的一个应用程序的内容:

$ heroku run bash
Running `bash` attached to terminal... up, run.1
~ $ ls -a
.    bin      config.ru  Gemfile       lib         public    .rspec  TODO.txt
..   .bundle  db         Gemfile.lock  Procfile    Rakefile  script  vendor
app  config   doc        .gitignore    .profile.d  README    spec

没有.git目录,所以git命令不起作用。

如果您只想查看当前部署的版本,您可以在应用程序的 Heroku 仪表板的 Activity 选项卡下查看。( https://dashboard.heroku.com/apps/[your app name]/activity) 但我不确定如何将git版本添加到您的应用程序代码中,以便您可以将其显示为应用程序的一部分。

于 2012-11-19T20:50:09.773 回答