2011-08-01 6 views
25

Ben bir hale gelecek şekilde reddedilen elde tutar ... Heroku + git ile başarısız aşağıdakinedeniyle hızla ileri

$ heroku jammit:deploy --app XXXXXXXXXXX 
===== Compiling assets...[OK] 
===== Commiting assets...[OK] 
===== Done... 
===== Deploying assets for xxxxx-staging to heroku... 
To [email protected]:XXXXXXXX.git 
! [rejected]  master -> master (non-fast-forward) 
error: failed to push some refs to '[email protected]:xxx-staging.git' 
To prevent you from losing history, non-fast-forward updates were rejected 
Merge the remote changes (e.g. 'git pull') before pushing again. See the 
'Note about fast-forwards' section of 'git push --help' for details. 
[FAIL] 
===== Done... 
===== Deleting compiled assets...[OK] 
===== Commiting deleted assets...[OK] 
===== Done... 
$ git pull 
Already up-to-date. 

yapıyorum yanlış veya farklı şekilde ne yapmaları gerektiğini bir fikir Bir itme zorlamak zorunda kalmadan itme izin verir?

Teşekkür

cevap

81

Her itişinizde işlemi zorlayın ve hızlı ileri sarsıntıları olsa bile itin. Bunu her zaman farklı işlemlere ittiğimizden beri geliştirdiğimiz Heroku sunucusunda yapıyoruz (bazıları diğerlerinden daha ileride).

git push -f [email protected]:picasso-staging.git 

Ben dağıtmak için jammit kullanmayın, ama muhtemelen kuvvet birinci itme ve daha sonra ikinci jammit görevi çalıştıran kurtulabilirsin. Ya da, jammit'in bir çeşit kuvvet itme bayrağını destekleyip desteklemediğini kontrol edin.

+0

bu yanıt kabul edilmeli. – jpwynn

1

sorun değişiklikleri zaten itilmiş olmasıdır ve sizin taahhüt olanlar yeni iter arkasındadır. Bir ana dalın ve özellik dalının hala var olduğunu varsayalım, buna my_feature adını verelim. Bunu yapmak ve tamam olabilir:

git checkout master 
git pull 
git checkout my_feature 
git rebase master 
    (you may have to fix some conflicts here, if any are found) 
git checkout master 
git merge my_feature 
git push heroku 
Sen hala her şeyin en iyi yapmak zorunda herhangi testler hatırlamalıyız

.

+0

Şimdilik bunun için teşekkürler, şuan ön = başladığımızdan beri, hepsi ana dalda. Öneriler? – AnApprentice

+0

$ git checkout master Zaten 'master' üzerinde Şubeniz, 4 ofset tarafından 'origin/master' öncesinde. – AnApprentice

+0

kaynağı/master, master ile aynı değil. origin/master, "git pull" komutunu yaptığınızda, değişiklikleri yapıp "master" ("git fetch") ile kökeni orijinale/master'a çeker ve sonra elle birleştirebilirsiniz.). Evet, ana dalın en son çekildiği yerin önünde, yani devam et ve git git. Muhtemelen bazı anlaşmazlıklar olacak ve eğer iyiyse, sadece o zaman itin! Eğer yerel ustanız varsa, yeniden inşa etmeye gerek yok. – MrDanA

7
git push -f REMOTE BRANCH:master #or just master 

Zorlayın! REMOTE'u kahraman uzaktan adınızla değiştirin (tüm uzaktan kumandaları görüntülemek için git remote -v). BRANCH'ı, itmek istediğiniz şubeyle değiştirin ya da master şubesi için "master" yazın.

+1

Tüm uzaktan kumandaları görmek için "git remote -v" kastediyorsunuz. –

+0

evet yazım denetimi için teşekkürler – dsmithco