Как просмотреть удаленную ревизию Git на Heroku

85

Для развертывания на Heroku я использую git push heroku master. Но как мне увидеть, какую ревизию я поставил на героку? (Я часто сомневаюсь, подтолкнул ли я последнюю версию вверх)

Для тех, кто не знаком с этим, сценарий создания Heroku генерирует удаленный репозиторий git, который вы нажимаете. При нажатии код волшебным образом развертывается.

Heroku добавляет удаленный репозиторий к локальному в форме:

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

Подробнее в руководстве Heroku «Развертывание с помощью Git».

Вопрос: как мне увидеть последнюю версию в репозитории Heroku?

Джеспер Рённ-Йенсен
источник

Ответы:

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
3
На самом деле не называет рефери
Оби
есть ли способ увидеть сами файлы в сети, как в репозитории github?
эран отзап
128

Правильный ответ на самом деле очень прост. Вам не нужно ничего проверять, и вам не нужно прибегать к хакам COMMIT_HASH (которые не работают со стеком Cedar). Все, что вам нужно сделать, это:git ls-remote <remote>

 > git ls-remote heroku
ddaszxcewb585d3a3c00de816a197b14462791a3        HEAD
ddaszxcewb585d3a3c00de816a197b14462791a3        refs/heads/master
долзенко
источник
так это покажет вам версию, на которую указывает конкретный удаленный репозиторий?
EE33,
12
Чтобы получить вывод этого сообщения и легко просмотреть журнал коммитов git и текстовые различия: git ls-remote heroku | awk 'END{print $1}' | xargs git show
Бобби Нортон,
Комментарий @ BobbyNorton - это прямой ответ здесь. Ницца.
Бен Халл
45

Теперь вы можете захотеть, heroku releasesи вы увидите 5 коммитов. хотя бы начало.

пижамный
источник
1
Спасибо. Это фактически показывает мне, что я хочу узнать (после отката, что на самом деле выполняется).
Cymen
24

что о

git log heroku/master
eweb
источник
В зависимости от того, как вы выполняете развертывание, masterссылка на ветвь может обновляться или не обновляться до развернутого SHA.
Джастин
11

если вы столкнулись с ситуацией, как я только что сделал, когда ваш коллега откатил ваше приложение heroku до версии, которая не отображается в heroku releases потому что они отслеживают только 2 выпуска ... проверка heroku / master метод не поможет, потому что HEAD больше не используется.

на помощь приходят недокументированные:

$ heroku console "ENV['COMMIT_HASH']"
"12abcdef"
кеничи
источник
это мило, но есть ли способ получить последний коммит git. Я проверил, что ENV не имеет переменной, которую я могу использовать для даты.
Дэвид
10
Это больше не работает на Cedar, есть ли замена?
dolzenko
Я получаю '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].
guyaloni
Вы можете получить доступ к консоли Rails в стеке Cedar, запустив ее, heroku run consoleи вы можете увидеть, что находится внутри ENV['COMMIT_HASH']переменной, запустив ее heroku run echo $ENV['COMMIT_HASH'](так как это переменная среды, вам понадобится '$' - как и в случае echo $PATH).
наклон
-1

heroku использует старый добрый Git, так что ..

показать последние 5 коммитов в текущей ветке: git log -5

показать историю коммитов через графический интерфейс Git: gitk

просмотреть текущий статус (он покажет, есть ли у вас незакрепленные файлы): git status

mj101
источник