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?


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.


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)


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 user@somesite.com:group/project.git   # git
git remote add --track master origin user@172.16.1.100: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.

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.