Conceitos-chave

Repositório remoto

  • Em inglês: remote repository
  • Sinônimo: remote

Um repositório remoto é a versão do seu projeto armazenada em algum lugar online — como no GitHub, no GitLab ou no Bitbucket. Pense nele como a base compartilhada do seu código. É onde todos da equipe podem enviar atualizações, pegar a versão mais recente e manter o projeto sincronizado.

Quando alguém fala coisas como adicionar um remoto ou dar push para o remoto, quer dizer enviar o trabalho local para essa cópia compartilhada online, não mexer no controle remoto da TV.

Um repositório remoto é importante por alguns bons motivos:

  • Ele permite que as pessoas colaborem. Cada pessoa pode ter sua própria cópia local, fazer alterações e depois dar push dessas atualizações para o remoto compartilhado. As outras podem puxar essas alterações. É assim que desenvolvedores trabalhando de cidades — ou fusos horários — diferentes conseguem se manter alinhados sem atrapalhar uns aos outros.

  • Ele funciona como uma rede de segurança. Se o seu notebook morrer, o seu código não morre junto. Como o projeto vive em um servidor remoto, você pode recuperar tudo clonando o repositório de novo. É basicamente um backup externo do seu trabalho.

  • Ele deixa o seu código acessível de qualquer lugar. Você pode puxar o projeto em outro computador, mexer nele em um café ou revisar pelo celular. Desde que você tenha conexão com a internet, seu código viaja com você.

  • Ele impulsiona a automação. A maioria das equipes modernas conecta seus repositórios remotos a sistemas que testam, compilam e fazem deploy do código automaticamente sempre que alguém dá push de alterações. Assim, os bugs são detectados mais cedo, e o seu software está sempre pronto para ser lançado.

Quer saber como o seu repositório local acompanha o que acontece no remoto? O Git atualiza as branches de rastreamento remoto (como origin/main) sempre que você dá um fetch ou um pull, permitindo comparar o histórico antes de mergear qualquer coisa.

Exemplos

Adicione um repositório remoto com a URL indicada à lista de remotos e atribua a ele o apelido origin:

git remote add origin https://github.com/user/repo.git

Puxe as alterações da branch remota associada à branch main no repositório remoto origin e, se houver alterações, faça o merge delas na branch main:

git pull origin main

Envie as alterações para a branch remota associada à branch main no repositório remoto origin:

git push origin main

Clone o repositório remoto da URL indicada para a sua máquina local. Você pode adicionar mais um argumento para especificar o nome do diretório onde o repositório será clonado:

git clone https://github.com/user/repo.git

Compare as alterações entre a sua branch local e a branch remota:

git diff main origin/main

Nesses exemplos, origin é um nome convencional para o repositório remoto padrão, mas você pode usar o nome que quiser. A branch main costuma ser usada como a branch principal de um repositório, mas isso pode variar conforme as convenções do projeto.