Como visualizar a revisão remota do Git no Heroku

85

Para implantar no Heroku, eu uso git push heroku master. Mas como faço para ver qual revisão empurrei para o heroku? (Muitas vezes fico em dúvida se levantei a versão recente)

Para quem não está familiarizado com ele, o script de criação do Heroku gera um repositório git remoto para o qual você envia por push. Após o envio, o código é implantado magicamente.

O Heroku adiciona um repositório remoto ao local no formato:

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

Mais informações no manual do Heroku "Deploying with Git"

A pergunta é: Como posso ver a versão mais recente no repositório Heroku?

Jesper Rønn-Jensen
fonte

Respostas:

63

Se você acabou de enviar e deseja ter certeza de que está atualizado, basta executar git remote show herokue verá uma saída semelhante a esta:

* 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)

Isso (up to date)no final será substituído por (fast forwardable)se não estiver atualizado.

Ou, se você deseja ver o log de commit completo do heroku remote, a única maneira que conheço é verificar primeiro. git checkout heroku/masterfornecerá o hash do commit atual e o comentário do commit:, HEAD is now at <short commit hash>... <commit comment>e git logfornecerá o resto da história.

Brock Batsell
fonte
Muito obrigado por esta resposta! Eu estava procurando por isso em todos os lugares.
tbaums
3
Na verdade, não diz o árbitro
Obie
existe alguma maneira de ver os próprios arquivos online, como em um repositório github?
eran otzap,
128

A resposta correta é realmente muito simples. Você não precisa fazer check-out de nada, nem precisa recorrer a hacks COMMIT_HASH (que não funcionam na pilha do Cedar). Tudo que você precisa fazer é:git ls-remote <remote>

 > git ls-remote heroku
ddaszxcewb585d3a3c00de816a197b14462791a3        HEAD
ddaszxcewb585d3a3c00de816a197b14462791a3        refs/heads/master
Dolzenko
fonte
então isso irá mostrar a versão para a qual um repositório remoto específico é apontado?
EE33
12
Para obter a saída desta mensagem e ver facilmente o log do git commit e a comparação textual: git ls-remote heroku | awk 'END{print $1}' | xargs git show
Bobby Norton
O comentário de @BobbyNorton é a resposta direta ao ponto aqui. Agradável.
Ben Hull
45

Você pode querer agora heroku releasese você verá como 5 commits. um começo, pelo menos.

pjammer
fonte
1
Obrigado. Isso realmente me mostra o que eu quero descobrir (depois de fazer um rollback do que está realmente em execução).
Cymen
24

A respeito

git log heroku/master
eweb
fonte
Dependendo de como você implanta, a masterreferência do branch pode ou não ser atualizada para o SHA que foi implantado.
Justin
11

se você se deparou com a situação, como eu acabei de fazer, em que um colega de trabalho reverteu seu aplicativo heroku para uma versão que não aparece heroku releasesporque eles só mantêm o controle de 2 lançamentos ... o checkout do heroku / master método não vai ajudar, porque HEAD não é mais o que é implantado.

os indocumentados para o resgate:

$ heroku console "ENV['COMMIT_HASH']"
"12abcdef"
Kenichi
fonte
isso é legal, mas existe alguma maneira de obter o último commit do git. Eu verifiquei que o ENV não tem nenhuma variável que eu possa usar para a data.
David
10
Isso não funciona mais no Cedar, se houver alguma substituição?
dolzenko
Eu recebo 'heroku console' has been disabled( devcenter.heroku.com/changelog-items/109 ). Eu tentei, heroku run "ENV['COMMIT_HASH']"mas consegui bash: ENV[COMMIT_HASH]: command not found. Quando eu uso echo, pego o barbante ENV[COMMIT_HASH].
guyaloni
Você pode acessar o console Rails na pilha do Cedar executando heroku run consolee você pode ver o que está dentro da ENV['COMMIT_HASH']variável executando heroku run echo $ENV['COMMIT_HASH'](já que é uma variável de ambiente, você precisa do '$' - muito parecido echo $PATH).
inclinação de
-1

heroku está usando o velho Git por baixo, então ..

mostrar os últimos 5 commits no branch atual: git log -5

mostrar histórico de commit por meio da interface do Git: gitk

visualizar o status atual (aparecerá se você tiver algum arquivo não confirmado): git status

mj101
fonte