Como vincular uma pasta a um aplicativo Heroku existente


815

Eu tenho um aplicativo Rails existente no GitHub e implantado no Heroku. Estou tentando configurar uma nova máquina de desenvolvimento e clonamos o projeto no meu repositório GitHub. No entanto, estou confuso sobre como vincular esta pasta ao Heroku. Originalmente, usei o heroku createcomando, mas obviamente não quero fazer isso desta vez, pois ele criará outra instância do Heroku.

Respostas:


1243

O Heroku vincula seus projetos com base no herokugit remote (e algumas outras opções, veja a atualização abaixo). Para adicionar seu controle remoto Heroku como controle remoto no seu repositório atual, use o seguinte comando:

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

onde projecté o nome do seu projeto Heroku (o mesmo que o project.heroku.comsubdomínio). Depois de fazer isso, você pode usar os heroku xxxxcomandos (supondo que você tenha o Heroku Toolbelt instalado) e pode enviar para o Heroku como de costume via git push heroku master. Como atalho, se você estiver usando a ferramenta de linha de comando, digite:

heroku git:remote -a project

onde, novamente, projecté o nome do seu projeto Heroku (obrigado, Coronel Panic ). Você pode nomear o Git remote como desejar, passando -r remote_name.

[Atualizar]

Como mencionado por Ben nos comentários, o controle remoto não precisa ser nomeado herokupara que os comandos gem funcionem. Eu verifiquei a fonte e parece que funciona assim:

  1. Se você especificar um nome de aplicativo através da --appopção (por exemplo heroku info --app myapp), ele usará esse aplicativo.
  2. Se você especificar um nome remoto do Git através da --remoteopção (por exemplo heroku info --remote production), ele usará o aplicativo associado ao Git remote.
  3. Se você não especificar nenhuma opção e tiver heroku.remotedefinido no seu arquivo de configuração do Git, ele usará o aplicativo associado a esse controle remoto (por exemplo, para definir o controle remoto padrão para "produção" usado git config heroku.remote productionno seu repositório, e o Heroku será executado git config heroku.remotepara ler o valor desta configuração)
  4. Se você não especificar nenhuma opção, a gema não encontrará nenhuma configuração no seu .git/configarquivo e a gema encontrará apenas um controle remoto nos seus controles remotos do Git que possua "heroku.com" na URL, ele usará esse controle remoto.
  5. Se nada disso funcionar, isso gera um erro instruindo você a passar --apppara o seu comando.

O link para "a fonte", acima, não funciona. Talvez tente esta página: devcenter.heroku.com/articles/using-the-cli - embora eu ache que o documento não é suficiente.
Purplejacket 31/08

1
Se você tentar usar o heroku git:remotemétodo, verifique se está usando o heroku toolbelt cli e se ainda não tem nenhuma gema heroku instalada no sistema (parece que não funcionou para mim com as antigas gemas).
Pierre-Adrien Buisson

3
Além disso, para várias ramificações heroku, você pode usar $ git config heroku.remote <appname>para definir o aplicativo padrão para poder usar comandos de terminal para esse aplicativo.
Sheharyar

1
se estiver usando http isto é heroku login, em seguida, o controle remoto é da formahttps://git.heroku.com/project-name.git
pleaner máximo

1
Nota: O Heroku agora o descreve na visão geral do projeto: Navegue para dashboard.heroku.com , clique no seu aplicativo, vá para a guia "deploy" e escolha o método de implantação "Heroku git" (selecionado por padrão). Em seguida, você receberá instruções sobre como conectar uma pasta / git existente ao Heroku.
acessível

230

A CLI Heroku possui um atalho fácil para isso. Para um aplicativo chamado 'falling-wind-1624':

$ heroku git:remote -a falling-wind-1624
Git remote heroku added.

Consulte https://devcenter.heroku.com/articles/git#creating-a-heroku-remote


1
! Resource not found
Verde

1
Você pode nomear o qualquer coisa remoto que deseja passando-r other_remote_name
MasterScrat

2
Essa ainda é a maneira correta de fazer isso, mesmo se você tiver conectado seu aplicativo Heroku diretamente ao GitHub. Observe que ele não substituirá seu controle remoto "origem"; ele cria um controle remoto "heroku".
Seth

144

Não se esqueça, se você também estiver em uma máquina em que não configurou o heroku antes

heroku keys:add

Ou você não poderá empurrar ou puxar para o repositório.


3
Ai sim! Isso também me ajudou. Eu tinha um aplicativo em que começamos o básico e depois bifurcamos "heroku" em "encenação" e "produção". Então eu fiz git remote add staging git@staging.xx:yy.gite git remote add production git@production.xx:yy.git- mas isso não foi suficiente. Quando eu tentava fazer git push staging master(ou produzir), eu recebia "Permissão negada (chave pública). Fatal: a extremidade remota desligou inesperadamente". O que corrigiu esse erro foi o que heroku keys:addGhoti menciona.
Purplejacket 31/08

8

Duas coisas a serem tomadas ao configurar um novo sistema de implantação para aplicativos antigos

1. Para verificar o acesso do seu aplicativo ao Heroku (especialmente o aplicativo)

heroku apps

ele listará os aplicativos aos quais você tem acesso, se você configurar pela primeira vez, provavelmente precisará

heroku keys:add

2. Em seguida, configure seu controle remoto git

Para o aplicativo Heroku já criado, você pode adicionar facilmente um controle remoto ao seu repositório local com o heroku git: remotecomando Tudo o que você precisa é o nome do seu aplicativo Heroku:

heroku git:remote -a appName

você também pode renomear seus controles remotos com o comando git remote rename:

git remote rename heroku heroku-dev(you desired app name)

Você pode usar o comando git remote para confirmar se um controle remoto foi definido para o seu aplicativo

 git remote -v

4

Use o garfo de heroku

  1. Use o novo comando "heroku fork"! Ele copiará todo o ambiente e você precisará atualizar o repositório do github depois!

    heroku fork -a sourceapp targetapp
    
  2. Clone local

    git clone git@heroku.com:youamazingapp.git
    
  3. Faça um novo repositório no github e adicione-o

    git remote add origin https://github.com/yourname/your_repo.git
    
  4. Empurre no github

    git push origin master
    



Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.