Repositório Git
Veja a definição de repositório Git, aprenda a inicializá-lo e cloná-lo com git init e git clone, salve alterações e envie-as para o repositório.
O que é um Repositório Git?
Um repositório Git é o armazenamento dos arquivos do seu projeto junto com o histórico completo de todas as alterações já feitas neles. Ele permite salvar versões do seu código (commits), navegar entre essas versões e colaborar com outras pessoas sem perder trabalho.
Esta página abrange todo o ciclo de vida de um repositório: criar um, fazer e salvar alterações, conectá-lo a um remoto e compartilhar seu trabalho. Cada etapa possui um link para um capítulo dedicado onde você pode se aprofundar.

O diretório .git
Tudo o que transforma uma pasta em um repositório vive em um único subdiretório oculto chamado .git na raiz do projeto. Ele contém o histórico de commits, branches, tags, configuração e a área de staging. Delete o .git e você ficará com arquivos simples — o histórico de versões terá desaparecido. Copie o .git junto com os arquivos e você terá copiado o repositório inteiro.
Repositórios locais vs. remotos
Git é um sistema de controle de versão distribuído, por isso há dois tipos de repositório com os quais você trabalhará:
- Um repositório local fica na sua própria máquina. Você faz commits nele, cria branches e inspeciona seu histórico offline — sem necessidade de rede.
- Um repositório remoto fica em um servidor (por exemplo GitHub ou Bitbucket). É a cópia compartilhada para a qual sua equipe envia e de onde recebe alterações.
Um fluxo de trabalho típico edita arquivos localmente, os registra como commits e, em seguida, sincroniza esses commits com o remoto.
Git Init para Inicializar um Novo Repositório
Use o comando git init para transformar uma pasta existente em um repositório. Você o executa uma vez, quando o projeto ainda não tem controle de versão.
git init
git initExecutar isso dentro da pasta do seu projeto cria o subdiretório oculto .git e imprime algo como:
Initialized empty Git repository in /path/of/project/.git/Você também pode criar o repositório em uma pasta com o nome que você escolher em uma única etapa, passando um diretório:
git init directory
git init <directory>Isso cria a pasta (se não existir) e inicializa um repositório Git vazio dentro dela. Nenhum branch aponta para um commit ainda; o branch padrão (geralmente main ou master, dependendo da sua versão e configuração do Git) começa a existir somente após o seu primeiro commit.
Git Clone para Clonar um Repositório Existente
Se o projeto já existe em um servidor remoto, você não executa git init. Em vez disso, use git clone para copiá-lo para a sua máquina. Esta também é uma operação única por projeto.
git clone repo url
git clone <repo url>Clonar baixa o histórico completo e os arquivos de trabalho e — ao contrário do git init — configura automaticamente a origem como um remoto chamado origin. Isso significa que você pode usar git push e git pull imediatamente, sem configuração adicional.
Git Add e Git Commit para Salvar Alterações no Repositório
Salvar uma alteração é um processo de dois passos no Git. Primeiro, o git add move as alterações para a área de staging (também chamada de índice) — uma zona de espera onde você escolhe exatamente o que vai para o próximo snapshot. Em seguida, o git commit registra esse conteúdo preparado como um ponto permanente no histórico. Dividir a operação permite que você faça commit apenas de algumas alterações de cada vez.
O fluxo abaixo cria um arquivo, verifica seu status, o prepara e faz o commit:
- mude de diretório para
/path/of/project - crie um novo arquivo
GitCommit.txtcom o conteúdo "commit example for git repo" - execute git status para confirmar que o novo arquivo não está rastreado
- execute
git add GitCommit.txtpara movê-lo para a área de staging - execute
git commitcom uma mensagem descrevendo o trabalho realizado
git add and git commit
cd /path/of/project
echo "commit example for git repo" >> GitCommit.txt
git status
git add GitCommit.txt
git commit -m "added GitCommit.txt to the repo"Execute git status a qualquer momento para ver quais arquivos não estão rastreados, preparados ou modificados. Apenas os arquivos que você adicionou explicitamente com git add são incluídos no próximo commit. Para manter saídas de build, segredos ou dependências fora do repositório, liste-os em um arquivo .gitignore.
Git Remote Add para Conectar a um Repositório Remoto
Se você criou o repositório com git init, ele ainda não tem um remoto. Adicione um com o comando git remote. Por convenção, o remoto principal é chamado de origin:
git remote add
git remote add origin <remote_repo_url>Verifique se o remoto foi registrado antes de enviar:
git remote -vIsso imprime as URLs de fetch e push para cada remoto configurado, por exemplo:
origin https://github.com/user/repo.git (fetch)
origin https://github.com/user/repo.git (push)(Repositórios criados com git clone já têm origin configurado, então você pode pular esta etapa.)
Git Push para Interação com o Repositório
Se você usou git clone, um repositório remoto já está configurado, então você pode executar git push para enviar suas alterações. Se você usou git init, primeiro precisa adicionar um repositório remoto (veja acima). Você pode usar um serviço Git hospedado como GitHub ou Bitbucket, criar um repositório lá e usar a URL fornecida para conectar seu projeto local.
Após adicionar o remoto, você pode enviar branches locais para ele:
git push
git push -u origin mainA opção -u (abreviação de --set-upstream) faz duas coisas: envia suas alterações e vincula seu branch local ao remoto. Após esse vínculo ser estabelecido, você pode executar simplesmente git push e git pull sem precisar nomear o remoto ou o branch a cada vez.
Git Config para Configuração e Ajustes
Antes do seu primeiro commit, o Git precisa saber quem você é. O comando git config define opções que controlam a identidade do usuário, preferências e o comportamento do repositório. As configurações existem em três escopos, cada um substituindo o mais amplo.
Use a flag --global para definir opções para o usuário atual. Elas se aplicam a todos os repositórios que você possui, o que é o escopo correto para seu nome e e-mail:
git repository, git config global user.name
git config --global user.name <name>
git config --global user.email <email>Use --local (o padrão quando você omite uma flag de escopo) para definir uma opção apenas para o repositório atual. Isso é útil quando um projeto precisa de uma identidade diferente do seu padrão global:
git repository, git config local user.email
git config --local user.email <email>Use --system para definir a configuração para todos os usuários e repositórios na máquina — por exemplo, um editor padrão compartilhado:
git config system editor
git config --system core.editor <editor>Quando a mesma chave está definida em mais de um escopo, local prevalece sobre global, e global prevalece sobre system, portanto, um valor por repositório sempre tem precedência.
Juntando Tudo
Para um projeto completamente novo que você deseja compartilhar, a sequência completa é:
git init
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
echo "# My Project" >> README.md
git add README.md
git commit -m "Initial commit"
git remote add origin <remote_repo_url>
git push -u origin mainSe o projeto já existe em um remoto, você pula git init e git remote add — git clone <repo url> fornece um repositório pronto para uso em um único comando.
A partir daqui, aprofunde-se nos comandos individuais: git add e git commit para salvar o trabalho, git status para inspecioná-lo, e git push / git pull para sincronizar com o remoto.