Como é que o "git push heroku master" sabe para onde empurrar e como empurrar para um repo diferente?

Ao empurrar para um repositório hospedado no Heroku, deve-se executar o seguinte comando:

git push heroku master

o que heroku e master indicam neste comando? Como é que o git sabe para onde ir? (o caminho do git)

Também, eu não sabia que podia usar {[[3]}} para mudar o nome de uma aplicação, por isso, antes, digamos que estava a usar o nome da aplicação trytryheroku e agora uso {[[4]} mas se eu empurrar, continua a empurrar para trytryheroku... em vez disso, há uma maneira de empurrar para a realidade?

 74
Author: Community, 2011-03-17

4 answers

A parte 'heroku' é o nome do comando que tem configurado - quando cria uma aplicação de heroku da primeira vez que cria uma chamada 'heroku' git remota a apontar para a sua aplicação - se escrever 'git remote' no seu projecto, irá mostrar-lhe os parâmetros remotos. Não há nada que o impeça de usar o 'heroku' como nome do remoto - se tiver vários ambientes para a sua aplicação, poderá ter comandos com nome de produção ou encenação, por exemplo.

A parte do "mestre" é o ramo local que você deseja empurrar para o remoto. Se você se desenvolver em um ramo de recurso, por exemplo chamado 'myfeature' e você quiser implantar isso para heroku, você faria;

git push heroku myfeature:master

O adicional: aqui o mestre está a dizer para empurrar o meu ramo local myfeature para o ramo master na nota remota: o heroku só pode ser usado a partir do ramo principal.

Se mudar o nome de uma aplicação o url remoto do Git do heroku irá mudar-faça um git remote -v que lhe irá mostrar o 'repo' do git que a sua aplicação está a usar, provavelmente irá precisa apagar a sua antiga origem heroku e adicionar a nova, git remote rm heroku Então git remote add heroku git@newgitpathfromcontrolpanel

Para saber mais sobre o Git eu recomendaria Este livro

 87
Author: John Beynon, 2013-07-23 13:38:41

PART 1: "How does git know where to push to?"

Antes de executar o comando acima mencionado:

$ git push heroku master

Há sempre alguns outros passos a executar: instalar o Git e o Heroku, criar um repo Git local, inscrever-se no heroku, log-in heroku através da linha de comandos, criar a pega do heroku para o ponto de hospedagem (explicado em parte 2)

1. Um repositório de 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. Inscrever-se (ed) para Heroku e ligado através da linha 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
Então, ao executar o programa, você carregou o código / app para Heroku.

PART 2: but what does heroku and master indicate?

É mais uma pergunta Git do que Heroku - Heroku é uma plataforma de hospedagem, que depende do Git (sistema de controle de Versão Distribuído) para implantação.

O conceito básico de 'push' é empurrar alguma coisa (file, app,..) temos localmente (no nosso trabalho máquina) para outro lugar, neste caso para um repositório remoto (máquina remota).

No Git, antes de usar o 'push', criamos um comando remoto (handle) que actua como referência a um repositório remoto (URL completo), fazemo-lo usando o seguinte comando:

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

A estrutura básica do comando push é:

$ git push <remote-name> <branch>

Então $ git push heroku master está realmente a empurrar o seu código/app/ficheiro (de algum acordo de Git local) para um acordo remoto de repo 'heroku' .

Pergunto-me quando é que este comando do "heroku" criado, foi adicionado quando executou $ criação do heroku
$ 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
Reparem na última linha " Git remote heroku added ".

Para que fique mais claro, aqui está um comando Git para verificar/enviar todos os comandos: $ git remote-v irá mostrar algo semelhante ao seguinte

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

Então podemos assumir que o seguinte comando foi executado (implicitamente) em algum lugar, quando você fez $ heroku create , criando assim o controle remoto de heroku para algum repo heroku (url) *

$ git remote add heroku [email protected]:somerepo.git
 36
Author: Nabeel Ahmed, 2013-06-27 21:33:19
Heroku é necessário como parte da gema de heroku para ajudar com o empurrão, e master é simplesmente o ramo git que você está empurrando. O git sabe para onde empurrar porque você cria uma aplicação heroku o push é configurado automaticamente, o que você pode ver escrevendo
git remote -v

Se precisar de alterar isso, remova-o com git remote rm heroku e depois adicione a nova aplicação yoru com git remote add heroku [email protected]:your-application-15.git

 8
Author: Will Ayd, 2011-03-17 11:51:55
Tal como tu, também me esforcei para entender estas pequenas migalhas de git e heroku e também fiquei confuso. Mas agora tenho um pouco de clareza para poder responder à sua pergunta em poucas palavras.

Assumindo que tem a configuração do git na pasta do seu projecto. Existe um .a pasta escondida do git na sua pasta do projecto que contém um ficheiro chamado "config" contém toda a informação sobre os comandos.

Os comandos são os repositórios individuais chamados individualmente como origem, heroku, encenação, prod etc.. No seu comando, heroku representa o repositório que mapeou para o projecto heroku. Abre o ficheiro de configuração que irá ver o URL.

Quando corres

git push heroku master

Está a dizer ao git para empurrar o ramo principal do seu repositório de origem actual para o ramo principal do repositório de heroku

Descanso todos os detalhes já são compartilhados em outras respostas por isso não quero repetir. Então esta é apenas uma resposta curta, segundo o meu entendimento. Espero que ajude.

 1
Author: Sameer, 2018-07-31 18:58:59