2010-02-17 2 views
75

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

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

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

$ git remote add heroku [email protected]:appname.git 

Больше информации в ручном "Deploying with Git"

Вопрос Heroku является: Как я могу увидеть последнюю версию в Heroku хранилище?

ответ

56

Если вы только что толкали и хотите, чтобы убедиться, что вы до современных, то вы можете просто запустить git remote show heroku и вы увидите результат, похожий на этот:

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

That (up to date) на конец будет заменен на (fast forwardable), если он не обновлен.

Или, если вы хотите просмотреть полный журнал регистрации для удаленного сервера heroku, единственный способ, которым я знаю, как проверить его в первую очередь. git checkout heroku/master даст вам текущий хеш фиксации и комментирует комментарий: HEAD is now at <short commit hash>... <commit comment> и git log предоставит вам остальную часть истории.

+0

Большое спасибо за этот ответ! Я искал его повсюду. – tbaums

+3

На самом деле не говорит вам ref – Obie

+0

Это не работает на Кедр. –

12

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

без документов на помощь:

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

это мило, но есть ли способ получить последний git commit.Я проверил, что у ENV нет переменной, которую я могу использовать для даты. – David

+0

+1 фантазия, будет использовать его – dolzenko

+10

Это больше не работает на кедрах, если есть замена? – dolzenko

122

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

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

, так что это покажет вам версию, на которую указывает конкретный удаленный репозиторий? –

+12

Чтобы получить вывод этого сообщения и легко увидеть журнал фиксации git и текстовый diff: 'git ls-remote heroku | awk 'END {print $ 1}' | xargs git show' –

+0

@ Комментарий БоббиНортона - это прямой ответ на этот вопрос. Ницца. – Beejamin

43

Теперь вы можете heroku releases, и вы увидите, как 5 фиксаций. старт как минимум.

+1

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

+1

Это самый официальный и информативный ответ! – brendan

18

насчет

git log heroku/master 
+1

Я думаю, что это правильный ответ ... – Polak

+0

В зависимости от того, как вы развертываете, ссылка на ветвь 'master' может быть обновлена ​​или изменена для развернутой SHA. – Justin

-1

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

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

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

Просмотреть текущий статус (он будет отображаться, если у вас есть y uncommited files): git status

Смежные вопросы