2013-10-08 55 views
1

我想在Heroku是在gihub推代碼碼推到Heroku的不工作

我用下面的命令

git push heroku mybranch:master 

的錯誤是

To https://github.com/user/lyricle-new.git 
! [rejected]  lyricle-frt-backend -> master (non-fast-forward) 
error: failed to push some refs to 'https://github.com/user/app.git' 
hint: Updates were rejected because a pushed branch tip is behind its remote 
hint: counterpart. Check out this branch and merge the remote changes 
hint: (e.g. 'git pull') before pushing again. 
hint: See the 'Note about fast-forwards' in 'git push --help' for details. 

使用的命令git pull正如提示中提到的迴應是Already up-to-date.

什麼可能是這個錯誤背後的原因?這是推動heroku的正確方法

回答

3

這樣做git push heroku mybranch:master,你告訴混帳把你當地mybranch分支機構,並與遠程master分支(遠程存儲在您的Heroku回購)合併。
您收到錯誤,因爲master在提交方面比mybranch提前。

考慮這個例子:
master: --------b---------m---------
mybranch:........\-c--c--/...........

在某個點,你分支(b)主成mybranch,提交(Ç)的一些代碼分支,併合並()它回到主人。

現在考慮這個例子:
master: --c-----b---c-----m---c--
mybranch:........\-c--c---/.......

這幾乎是同樣的情況,但同時你提交代碼到mybranch,有人通過提交一些其他的代碼更新master。如果您要將mybranch合併到master中,您可能會在代碼與master中包含的新代碼之間產生衝突,因此Git拒絕執行合併。首先,您必須使用新版本master更新您的本地分支,然後只有Git允許您推送。

簡而言之:
- git pull heroku master:mybranch
- 解決潛在的衝突
- 提交修改後的文件
- git push heroku mybranch:master


現在關於Heroku的,你應該總是推代碼如下:git push heroku master(考慮到你在01上本地分支)。你應該做什麼來避免像git push heroku mybranch:master這樣的事情是,當你在分支上完成工作時,總是把你的修改合併到master,然後(在驗證一切正常後)把master push到heroku。

看到這個資源一個簡單的git的工作流程,似乎是你在找什麼:https://www.atlassian.com/git/workflows#!workflow-feature-branch

一切都集中在主最終,然後你可以定期推高手的Heroku(理想情況下,你會爲​​推動一次你的應用程序的每一個版本)

+0

如果像我一樣,你有兩個Heroku應用程序(用於製作和分期),請確保你的本地'staging'分支是最新的'master'分支,然後再嘗試' git push staging:master' –

0

從提示看來,你還沒有推動你的最新變化到你的遠程倉庫。如果你已經完成了拉動並再次推送,也許你已經刪除了本地倉庫中的文件你沒有刪除你的遠程repository.try做一個git add --all然後提交併推送更改。