2012-06-08 4 views
7

Я использую Heroku и имею Rails-приложение, которое является стабильным (производство env), поэтому я хотел создать что-то новое, где я могу обеспечить гарантию качества, где я могу видеть, как будут работать изменения на Heroku (а также агрегирование улучшений для релизов) без предварительного нажатия на мое приложение для производства.Git Errors при нажатии на Heroku

Так что я сделал, создавал новое приложение Heroku, а также создавал новую ветвь локально (dev). Мое намерение состояло в том, чтобы объединить dev в master локально после того, как я протестировал изменение в своем новом приложении QK Heroku, а затем нажимаю на производство Heroku из моей ведущей ветки.

Мой подход может быть плохим с моим пейзажем, я новичок, так что это было только мое лучшее предположение о том, как это сделать.

Но когда я подтолкнул свою ветвь dev к моему новому приложению QA, он работал для нажатия на ветвь dev приложения QA, но не на мастера. Поэтому я не смог увидеть (и проверить) свои изменения в новом приложении QA. Это, кажется, говорил мне, что я могу только нажать мастер ветку к мастеру моего QA приложения, так как я вытащил уже и все было уже уточненным, но я получаю эту ошибку:

Pushing to [email protected]:foobar/QA.git 
To [email protected]:foobar/QA.git 
! [rejected]  master -> master (non-fast-forward) 
error: failed to push some refs to '[email protected]:foobar/QA.git' 
hint: Updates were rejected because the tip of your current branch is behind 
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull') 
hint: before pushing again. 
hint: See the 'Note about fast-forwards' in 'git push --help' for details. 

Может кто-то, пожалуйста, помогите мне выяснить, что я делаю неправильно - либо с моей средой, либо с Гит? Спасибо.

+0

Вы спрашиваете об Heroku, но ваше сообщение об ошибке говорит Github. Удостоверьтесь, что вы нажимаете в нужное место. – matt

ответ

20

Приложения Heroku запускаются только из основной ветви хранилища приложений (локально для Heroku). Если вы хотите развернуть ветвь в Heroku, которая не является главной ветвью вашего локального репо, вам необходимо указать ее. В вашем случае это будет что-то вроде git push qa-remote dev:master (замените qa-remote на фактическое имя пульта в приложение QA), в котором говорится, что моя локальная ветвь dev подключается к главной ветке на qa-remote.

Когда вы впервые нажимаете так, вам нужно будет добавить флаг -f, чтобы принудительно нажать (без перемотки вперед). Впоследствии вы сможете проталкивать без флага -f, если ваш местный филиал обновлен.

+0

именно то, что я искал, спасибо! – yellowreign

22

Попробуйте нажать на -ff (быстрая перемотка вперед): git push heroku master -ff (заменить heroku с фактическим названием удаленного героя).

+1

Похоже, что должен быть лучший способ. Поскольку несколько разработчиков работают над этим приложением, если есть более эффективная настройка или другой способ сделать это, чем быстрый переход, я думаю, что было бы лучше. – yellowreign

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