Como é que o "git push heroku master" sabe para onde empurrar e como empurrar para um repo diferente?
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?
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
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' .
$ 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
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
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.