Heroku push está siendo rechazado, después de la reinstallation del sistema operativo?

Estoy siguiendo los tutoriales realizados por Michael Hartl, pero tiendo a realizar mucho salto de distro en Linux. Cloné mi repo de github y estoy bien con eso. Sin embargo, no puedo presionar para heroku nunca más y no estoy seguro de por qué exactamente …

Aquí están los commands que estoy tratando de ejecutar:

$ bundle exec rake test $ git add -A $ git commit -m "Use SSL and the Puma webserver in production" $ git push $ git push heroku $ heroku run rake db:migrate 

Todo funciona bien hasta la última parte:

 git push heroku warning: push.default is unset; its implicit value is changing in Git 2.0 from 'matching' to 'simple'. To squelch this message and maintain the current behavior after the default changes, use: git config --global push.default matching To squelch this message and adopt the new behavior now, use: git config --global push.default simple When push.default is set to 'matching', git will push local branches to the remote branches that already exist with the same name. In Git 2.0, Git will default to the more conservative 'simple' behavior, which only pushes the current branch to the corresponding remote branch that 'git pull' uses to update the current branch. See 'git help config' and search for 'push.default' for further information. (the 'simple' mode was introduced in Git 1.7.11. Use the similar mode 'current' instead of 'simple' if you sometimes use older versions of Git) To git@heroku.com:morning-stream-6357.git ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'git@heroku.com:morning-stream-6357.git' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (eg hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details. 

Realmente no estoy seguro de cómo solucionar esto: / ¿Alguien puede ayudar? Investigué esto y agregué el repo heroku remoto usando esto:

 git remote add heroku-remote git@heroku.com:project.git 

Por supuesto, modificarlo para mi código sería así:

 git remote add heroku-remote git@heroku.com:morning-stream-6357.git 

Pero todavía no soy capaz de empujar desde la command-line, he estado presionando usando el button de deployment heroku que me permite implementar la twig principal, pero creo que no es una buena idea, de lo contrario, creo que se mencionaría en el libro. Cualquier ayuda sería muy apreciada.

EDITAR: en caso de que alguien se pregunte, instalé el cinturón de herramientas heroku.

EDITAR: Debería haber notado antes que ya he intentado ejecutar este command:

 git push heroku master 

Pero todavía me da un error:

 jose@jose-desktop:~/Workspace/sample_app$ git push heroku master To git@heroku.com:morning-stream-6357.git ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'git@heroku.com:morning-stream-6357.git' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (eg hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details. 

No estoy seguro de qué está causando esto, debería estar actualizado. He clonado el repository y lo he implementado manualmente desde la connection github de heroku antes, por lo que debería estar actualizado.

 git pull 

Resultados en esto:

 jose@jose-desktop:~/Workspace/sample_app$ git pull Already up-to-date. 

Tendrás que hacer un git pull heroku master para fusionar tus cambios heroku localmente. Cuando haces un git pull , está haciendo el git pull origin master que es github y no heroku. Entonces, cualquier cambio que hayas hecho en tu heroku está causando un conflicto.

Además, debe establecer la opción de coincidencia de git desde la línea de command usando

  • git config --global push.default matching

o

  • git config --global push.default simple .

Aquellos que le dicen a git qué twig presionar en lugar de necesitar ser empujados explícitamente, como con la twig master git push heroku master . Eso es lo que ese post de error intenta decirte.

Nota: Heroku solo aceptará tu twig principal a less que explícitamente digas git push heroku yourbranch:master https://devcenter.heroku.com/articles/git

Esto está cubierto en el tutorial de Hartl en la sección 1.4.1 Instalación y configuration que necesita hacer una vez de:

 $ git config --global user.name "Your Name" $ git config --global user.email your.email@example.com $ git config --global push.default matching $ git config --global alias.co checkout 

Debes especificar la twig que estás presionando a Heroku.

intente ejecutar git push heroku master lugar de git push Heroku .

Si desea enviar una twig que no sea el maestro a Heroku, puede hacer esto:

 git push heroku yourBranchName:master 

Además, el post de error te está diciendo que hagas una git pull antes de volver a presionar. Probablemente deberías hacer eso.

Lo arreglé con solo el infierno y creando un nuevo repository heroku a través del sitio de heroku y luego agregué el repository:

 heroku login heroku git:clone -a whispering-hamlet-1487 

Desafortunadamente, esto lleva a que haya "heroínas múltiples" aplicaciones en un directory, por lo que para migrar la database como se suponía que debíamos hacer en el listdo 7.30 del libro de Micheal Hartl, ya no se puede migrar utilizando esto:

 heroku run rake db:migrate 

En su lugar, debe migrarse utilizando:

 heroku run rake db:migrate -app whispering-hamlet-1487 

Lo escribí por completo en caso de que alguien más aprendiendo rails encuentre esto difícil y necesite hacer reference a esto en el futuro. Debes replace whispering-hamlet-1487 con el nombre de tu aplicación.

Lamentablemente, no pude encontrar la manera de continuar usando el repo antiguo, pero para ser sincero, eso realmente no importa, parece una pta total. Es mucho mejor renunciar a esto. Si alguien está al tanto de una forma de hacerlo sin tener que crear un nuevo repository, lo más que agradecería, ya que imagino que durante la producción este no sería el mejor curso de acción.