Configurando uma origem remota git

180

Eu tenho os seguintes repositórios.

  1. DEV REPO: em um diretório na minha máquina de desenvolvimento onde eu faço alterações
  2. REIN PRINCIPAL: repositório vazio na minha máquina de desenvolvimento para o qual envio alterações do repositório de desenvolvimento
  3. REPO DE PRODUÇÃO: repositório na máquina host para obter atualizações do repo principal

Eu costumava git remote add origin /Users/me/sites/main_repodefinir o repositório PRINCIPAL como origem para o repositório DEV. O repositório de produção está em um host remoto. Posso usar uma variação do mesmo comando para definir o repositório PRINCIPAL como origem para o repositório PRODUCTION também? Se "yes", então suponho que a sintaxe inclua um endereço IP. Como seria isso?

Jay
fonte
Você não quis dizer "definir o repositório de produção como origem para o repositório principal"?
Pedro A

Respostas:

289

Usando SSH

git remote add origin ssh://login@IP/path/to/repository

Usando HTTP

git remote add origin http://IP/path/to/repository

No entanto, ter um processo simples git pullcomo uma implantação geralmente é uma má ideia e deve ser evitado em favor de um script de implantação real.

Clement Herreman
fonte
6
Por que é uma péssima idéia? Fazendo algumas pesquisas agora para obter exemplos de scripts de implantação.
21411 Jay
14
Porque a implantação geralmente significa (leia "sempre") mais do que apenas o que git pullfazer. Pode ser necessário configurar as credenciais do banco de dados de produção, limpar o cache, aumentar o número da versão, fazer backup da versão mais antiga, para que você possa reverter se algo der errado, otimizar / minimizar seus ativos (CSS e Js, por exemplo) e muitos outros coisas.
Clement Herreman
33
@ ClementHerreman - parece que, com base em sua explicação, usar git pull não é tanto uma "má idéia", mas uma solução limitada. Às vezes, acho que o git pull é uma solução de implantação simples e perfeitamente eficaz quando tenho um cenário simples.
Brady Holt
4
Eu acho que você precisa especificar ssh: // para a forma como ssh, ou seja, git ssh origem add remoto: // de login @ IP / path / to / repositório
kakyo
4
Acho que se modificássemos a declaração final para "às vezes é uma má idéia", não ousada, seria uma excelente resposta.
Chris Moschini
104

Para quem vem aqui, como eu, procurando a sintaxe para alterar a origem para um local diferente, você pode encontrar essa documentação aqui: https://help.github.com/articles/changing-a-remote-s-url/ . Usar git remote addpara fazer isso resultará em "fatal: a origem remota já existe".

Casca de noz: git remote set-url origin https://github.com/username/repo

(A resposta marcada está correta, só espero ajudar alguém tão perdido quanto eu estava ... haha)

filósofo perdido
fonte
2
Essa resposta é melhor para pessoas que desejam alterar "git remote url", se já existir. Obrigado @lostphilosopher
eonist
17

Você pode incluir a ramificação a ser rastreada ao configurar controles remotos, para manter as coisas funcionando conforme o esperado:

git remote add --track master origin [email protected]:group/project.git   # git
git remote add --track master origin [email protected]:group/project.git   # git w/IP
git remote add --track master origin http://github.com/group/project.git   # http
git remote add --track master origin http://172.16.1.100/group/project.git # http w/IP
git remote add --track master origin /Volumes/Git/group/project/           # local
git remote add --track master origin G:/group/project/                     # local, Win

Isso evita que você precise editar manualmente sua configuração do git ou especificar o rastreamento de ramificação manualmente.

Michael Thompson
fonte