Ответ 1
Если у вас есть существующее приложение на Heroku, и вы получаете это сообщение о не указанном приложении, вы можете исправить его, выполнив его на своем локальном терминале:
heroku git:remote -a MyHerokuAppName
Я только что создал простое приложение Rails, используя
rails new myapp
затем создал стек героя, используя:
heroku create --stack cedar
Но когда я пытаюсь открыть приложение на Heroku, используя:
heroku open
Я получаю:
! No app specified.
! Run this command from an app folder or specify which app to use with --app <app name>
И это:
$ heroku open --app myapp
дает мне следующее:
! App not found
Я пропустил что-то очевидное?
Если у вас есть существующее приложение на Heroku, и вы получаете это сообщение о не указанном приложении, вы можете исправить его, выполнив его на своем локальном терминале:
heroku git:remote -a MyHerokuAppName
Heroku по умолчанию не создает приложение с именем вашего каталога, поэтому, когда вы делаете
heroku create --stack cedar
Creating calm-bayou-3229... done, stack is cedar
http://calm-bayou-3229.herokuapp.com/ | [email protected]:calm-bayou-3229.git
создается приложение с именем "quiet-bayou-3229" И вы можете сделать
heroku open --app calm-bayou-3229
Opening http://calm-bayou-3229.herokuapp.com/
Вы всегда можете перечислить свои приложения:
heroku apps
Другим подходом к решению проблемы является понимание того, что делает файл .git/config, связанный с приложением heroku, и внесение необходимых настроек.
1.Откройте .git/config
из вашего корня проекта heroku.
Ваш конфигурационный файл git может выглядеть примерно так, особенно если вы жонглируете паролями герою на своей машине.
[email protected]{heroku.account}
отображается вместо [email protected]
из-за конфигурации в вашем файле ~/.ssh/config
. Ссылка на heroku-app-8396.git
должна быть обновлена в соответствии с вашим именем проекта heroku. У каждой учетной записи heroku у вас должна быть запись в файле ~/.ssh/config
. Очевидно, что учетная запись heroku, с которой связан этот проект heroku, должна отображаться в вашем файле .git/config
.
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = false
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = [email protected]:heroku-app-8396.git
[remote "heroku"]
fetch = +refs/heads/*:refs/remotes/heroku/*
url = [email protected]:heroku-app-8396.git
[branch "master"]
remote = origin
merge = refs/heads/master
[heroku]
account = heroku.account
2. Когда я запускаю git pull heroku master
, все, кажется, работает хорошо.
3. Когда я запустил heroku logs
, я получаю сообщение об ошибке:
$ heroku ps
! No app specified.
! Run this command from an app folder or specify which app to use with --app APP.
Почему?
Насколько я могу судить, команда heroku
, похоже, не знает, что делать с ссылками {heroku.account}
. Если мы изменим эти ссылки на com
(который является значением по умолчанию, когда вы не используете плагин herocu 'account'), команды heroku
работают еще раз, но теперь наши вызовы git
говорят, что есть другое проблема:
$ git pull heroku master
! Your key with fingerprint d6:1b:4c:48:8c:52:d4:d6:f8:32:aa:1a:e7:0e:a2:a1 is not authorized to access smooth-robot-8396.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Один из способов решения этой проблемы - определить пульт для git
и пульта дистанционного управления для heroku
, а затем сообщить heroku
, какой удаленный доступ использовать.
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = false
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = [email protected]:heroku-app-8396.git
[remote "heroku"]
fetch = +refs/heads/*:refs/remotes/heroku/*
url = [email protected]:heroku-app-8396.git
[remote "heroku-app"]
fetch = +refs/heads/*:refs/remotes/heroku/*
url = [email protected]:heroku-app-8396.git
[branch "master"]
remote = origin
merge = refs/heads/master
[heroku]
remote = heroku-app
account = heroku.account
Мне нравится явно указывать удаленное приложение, когда я нажимаю содержимое на удаленный компьютер, поэтому для него используется heroku
remote, хотя эта конфигурация также поддерживает нажатие/вытягивание с использованием значения по умолчанию (например, git push
). Я создаю новое удаленное "heroku-app" и добавляю remote = heroku-app
, чтобы сообщить heroku
использовать удаленный сервер, который не включает учетную запись heroku в URI.
Теперь я могу запускать команды git
и heroku
, как я хочу.
У меня была такая же проблема. Все, что мне нужно было сделать, это cd для создания dir вместо запуска команд из папки модели в каталоге проекта.
Эта сумасшедшая вещь работала для меня:
Если у вас есть приложение git repo copy на вашем локальном компьютере, то cd
в это место и , что он!!
Вы сможете использовать приложение. Вы можете проверить это командой: heroku logs -n 1500