Até agora, seu trabalho com Git foi puramente local, ou seja, todas as versões do seu projeto estão salvas apenas na sua máquina. Mas o verdadeiro poder do Git se revela quando você começa a trabalhar com repositórios remotos. Repositórios remotos permitem que você armazene seu código em um servidor na nuvem (como GitHub, GitLab ou Bitbucket), facilitando o backup, o compartilhamento e a colaboração com outras pessoas.

Neste capítulo, vamos aprender a interagir com esses repositórios remotos, a enviar suas alterações para a nuvem e a buscar as mudanças feitas por outros membros da equipe.

5.1 O Conceito de Repositórios Remotos 🌐

Um repositório remoto é simplesmente uma versão do seu repositório Git que está hospedada em algum lugar na internet ou em um servidor de rede. Os serviços mais populares para isso são:

Ao usar um repositório remoto, você obtém:

5.2 Clonando Repositórios (git clone) ⬇️

A maneira mais comum de começar a trabalhar em um projeto Git que já existe em um repositório remoto é cloná-lo. Clonar um repositório significa criar uma cópia completa de todo o histórico do projeto (incluindo todas as branches e commits) do servidor remoto para sua máquina local.

Para clonar um repositório, você precisa da URL do repositório remoto (geralmente fornecida pela plataforma, como GitHub). Essa URL pode ser via HTTPS ou SSH. Para iniciantes, HTTPS é geralmente mais simples, mas SSH oferece mais segurança e conveniência após a configuração inicial.

  1. Encontre a URL de Clone: Vá até o repositório no GitHub (ou GitLab/Bitbucket). Procure por um botão "Code" (ou similar) e copie a URL HTTPS. Será algo como https://github.com/usuario/nome-do-repositorio.git.
  2. Clone o repositório: Abra seu terminal e navegue até a pasta onde você quer que o projeto seja salvo. Em seguida, execute:
git clone <https://github.com/usuario/nome-do-repositorio.git>

O Git criará uma nova pasta com o nome do repositório e baixará todo o conteúdo para ela.

Após o clone, o Git configura automaticamente um "remote" chamado origin que aponta para a URL do repositório de onde você clonou. Você pode verificar isso com:

cd nome-do-repositorio # Entre na pasta clonada
git remote -v

Você verá algo como:

origin  [<https://github.com/usuario/nome-do-repositorio.git>](<https://github.com/usuario/nome-do-repositorio.git>) (fetch)
origin  [<https://github.com/usuario/nome-do-repositorio.git>](<https://github.com/usuario/nome-do-repositorio.git>) (push)

Isso significa que seu repositório local está conectado ao remoto via origin.

5.3 Enviando Alterações para o Remoto (git push) ⬆️

Depois de fazer commits localmente, você vai querer enviar essas alterações para o repositório remoto para que elas fiquem salvas na nuvem e disponíveis para outros colaboradores. Isso é feito com o comando git push.

  1. Faça algumas alterações e commits:

    # Exemplo: crie um novo arquivo ou modifique um existente
    echo "Conteúdo do arquivo remoto" > arquivo_remoto.txt
    git add arquivo_remoto.txt
    git commit -m "Adiciona arquivo para teste de push"
    
  2. Envie seus commits para o remoto:

    git push origin main
    

Sendo:

Se for seu primeiro push de uma branch para o remoto, o Git pode pedir para você configurar a branch de rastreamento. Você pode usar o comando sugerido, que será algo como:

git push --set-upstream origin main
# Ou o mais curto:
git push -u origin main

Depois disso, em pushes futuros da mesma branch, você pode simplesmente usar git push.

Se você estiver usando HTTPS e não tiver credenciais armazenadas, o Git pode pedir seu nome de usuário e senha (ou um Personal Access Token) do serviço de hospedagem (GitHub, etc.).

5.4 Buscando e Baixando Alterações do Remoto (git fetch e git pull) ⬇️

Em um ambiente colaborativo, outros desenvolvedores estarão fazendo alterações e enviando-as para o repositório remoto. Você precisa de uma forma de baixar essas atualizações para sua máquina local.

5.4.1 git fetch: Baixar, mas não integrar 📥