2011-03-17 19 views
69

Al empujar a un repositorio alojado en Heroku uno debe ejecutar el siguiente comando:¿Cómo sabe "git push heroku master" saber a dónde presionar y cómo enviar a un repositorio diferente?

git push heroku master 

¿Qué heroku y master indican en este comando? ¿Cómo sabe Git a dónde presionar? (la ruta de acceso git)

Además, no sabía que puedo usar heroku rename para cambiar el nombre de una aplicación, por lo que antes, digo que estaba usando el nombre de la aplicación trytryheroku y ahora uso heroku create real-thing pero si presiono, todavía presiona para trytryheroku ... ¿hay alguna manera de presionar a la realidad?

Respuesta

8

heroku se requiere como parte de la gema heroku para ayudar con el empuje, y el maestro es simplemente la rama de git que está presionando. El GIT sabe dónde empujar a porque se crea una aplicación heroku el empuje es automática de configuración, que se puede ver escribiendo

git remote -v 

si necesita cambiar eso quitarlo con git remote rm heroku y luego añadir yoru nueva aplicación con git remote add heroku [email protected]:your-application-15.git

+0

nota que la rama remota _normally_ ser cr eated por el mismo nombre que la rama que estás empujando. Sin embargo, esto se puede cambiar (git push heroku master: mymaster, p. Ej., Oa través del archivo confgi) – sehe

+2

Esta respuesta no es cierta. 'heroku' es el nombre del control remoto, y está totalmente desconectado de la gema heroku. – jergason

82

La parte 'heroku' es el nombre del control remoto que ha configurado: cuando crea una aplicación heroku la primera vez que crea una llamada remota git 'heroku' apuntando a su aplicación, si escribe 'git remote' dentro de su proyecto, le mostrará los puntos finales remotos. No hay nada que lo bloquee para usar 'heroku' como el nombre del control remoto: si tiene varios entornos para su aplicación, puede tener controles remotos llamados producción o montaje, por ejemplo.

La parte 'maestra' es la rama local que desea insertar en el control remoto. Si desarrollas en una rama de características por ejemplo llamada 'myfeature' y quieres desplegar eso en heroku, lo harías;

git push heroku myfeature:master 

el adicional: amo aquí está diciendo a empujar mi local de myfeature rama en la rama master en el control remoto - Nota: heroku sólo puede desplegar desde la rama principal.

Si cambia el nombre de una aplicación, la url remota heroku git cambiará - haga un git remote -v que le mostrará el git repo que está usando su aplicación, probablemente necesite eliminar su antiguo origen heroku y agregar el nuevo, git remote rm heroku luego git remote add heroku [email protected]

para obtener más información sobre Git recomendaría this libro

+0

Puede actualizar la URL de un control remoto con 'git remote set-url ' (Git 1.7.0 y posterior), o 'git config remote. .url ', o editando' .git/config' (posiblemente mediante 'git config -e' en Git 1.6.3 y posterior). –

+2

Muy útil, ¡gracias! – PhillipKregg

+2

que fue muy, muy útil. Gracias –

30

PARTE 1: "¿Cómo sabe donde git para empujar a?"

Antes de ejecutar el comando mencionado anteriormente:

$ git push heroku master 

Siempre hay algunos otros pasos para ejecutar: Instalación de Git y Heroku, creando un repositorio git local, la firma del correo hasta heroku, inicie una sesión en heroku a través de línea de comandos, creando heroku identificador a punto de alojamiento (explica en la Parte 2)

1. Un repositorio Git local:

$ git init 
    Initialized empty Git repository in .git/ 
    $ git add . 
    $ git commit -m "my first commit" 
    Created initial commit 5df2d09: my first commit 
    44 files changed, 8393 insertions(+), 0 deletions(-) 
    create mode 100644 README 
    create mode 100644 Procfile 
    create mode 100644 app/controllers/source_file 
    ... 

2.Tener inscripción (ed) para Heroku y ha iniciado la sesión en medio de la línea de comandos:

$ heroku login 
Enter your Heroku credentials. 
Email: [email protected] 
Password: 
Could not find an existing public key. 
Would you like to generate one? [Yn] 
Generating new SSH public key. 
Uploading ssh public key /Users/adam/.ssh/id_rsa.pub 

Así ejecutando $ git push heroku master que ha empujado el código/aplicación a Heroku.


PARTE 2: pero ¿qué heroku y maestro indican?

Es más una pregunta de Git que Heroku - Heroku es una plataforma de alojamiento, que depende de Git (Sistema de control de versiones distribuidas) para la implementación.

El concepto básico de 'push' está empujando algo (archivo, aplicación, ...) que tenemos localmente (en nuestra máquina de trabajo) a otro lugar, en este caso a un repositorio remoto (máquina remota).

En Git antes de usar 'empuje' creamos un mando a distancia (mango) que actúa como una referencia a un repositorio remoto (URL completa), lo hacemos con el siguiente comando:

$ git remote add <remote-name-of-our-choice> <URL-where-you-be-pushing-yourapp> 

La estructura básica de mando 'empuje' es:

$ git push <remote-name> <branch> 

Así $ git push heroku master es en realidad empujando su código/aplicación/archivo (de algún repositorio git local) para un acuerdo de recompra a distancia 'heroku'.

preguntaba cuando consiguió creó esta remota 'heroku', que se añadió cuando se ejecutó $ heroku crear

$ heroku create 
Creating stark-fog-398... done, stack is cedar 
http://stark-fog-398.herokuapp.com/ | [email protected]:stark-fog-398.git 
Git remote heroku added 

se dan cuenta de la última línea "Git remoto heroku añadió".

a hacer más claro, aquí hay un comando de Git para comprobar/salida de todos los mandos a distancia: $ git remoto -v mostrará algo similar a lo siguiente

$ git remote -v 
heroku  [email protected]:somerepo.git (fetch) 
heroku  [email protected]:somerepo.git (push) 

lo tanto, podemos suponer que la fue ejecutado siguiente comando (implícitamente) en algún lugar, cuando lo hizo $ heroku crear, por lo tanto, la creación del mando a distancia heroku a algunos de recompra heroku (URL) *

$ git remote add heroku [email protected]:somerepo.git 
Cuestiones relacionadas