2010-02-17 64 views
75

對於部署到Heroku,我使用git push heroku master。但是,我如何看到我推到heroku的哪個版本? (我經常懷疑是否推動了最近的版本)如何查看Heroku上的遠程Git修訂版

對於那些不熟悉它的人來說,Heroku的創建腳本會生成一個遠程git存儲庫,並將其推送到該存儲庫。在推送時,代碼被神奇地部署。

Heroku上增加了遠程倉庫到當地一個形式:

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

更多信息在Heroku的手動"Deploying with Git"

的問題是:我怎麼能看到的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) 

(up to date)如果它不是最新的,則結尾將被替換爲(fast forwardable)。或者,如果您想查看heroku遙控器的完整提交日誌,我知道如何才能首先檢查它。 git checkout heroku/master會給你當前的提交哈希和提交評論:HEAD is now at <short commit hash>... <commit comment>git log會給你的故事的其餘部分。

+0

非常感謝這個答案!我到處尋找它。 – tbaums

+3

實際上並沒有告訴你參考 – Obie

+0

這不適用於雪松。 –

12

如果你遇到了這種情況,就像我剛剛做的那樣,一位同事將你的heroku應用程序回滾到一個版本,因爲他們只跟蹤2個版本,因此未在heroku releases中顯示......對heroku/master方法的結帳不會有幫助,因爲HEAD不再是部署的東西。

無證救援:

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

這是甜蜜的,但有沒有什麼辦法讓最後的git提交。我檢查了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 commit log和text diff: 'git ls-remote heroku | awk'END {print $ 1}'| xargs git show' –

+0

@ BobbyNorton的評論是這裏的直接答案。尼斯。 – Beejamin

43

現在,您可能希望heroku releases,你會看到像5個提交。至少是一個開始。

+1

謝謝。這實際上向我展示了我想要查找的內容(在回滾實際運行之後)。 – Cymen

+1

這是最正式和最豐富的答案! – brendan

18

怎麼樣

git log heroku/master 
+1

我認爲這是正確的答案... – Polak

+0

根據您的部署方式,master分支引用可能會或可能不會更新到部署的SHA。 – Justin

-1

的Heroku是下使用普通的老蠢貨,所以..

顯示在當前分支最新的5次提交: git log -5

節目通過Git的圖形用戶界面提交歷史: gitk

查看當前狀態(它會顯示您是否有y uncommited files): git status

相關問題