O que é Git
Nesta página você encontrará a definição e a importância do Git, além de informações sobre desempenho, segurança e flexibilidade como sistema de controle de versão.
Este capítulo explica o que é Git, por que ele se tornou o padrão para rastrear código-fonte e como suas escolhas de design — histórico distribuído, armazenamento endereçado por conteúdo e ramificações baratas — se traduzem em benefícios cotidianos para desenvolvedores e equipes. Ao final, você entenderá onde o Git se encaixa, conhecerá os principais comandos para começar e saberá quais capítulos relacionados ler a seguir.
Definição
Git é um sistema de controle de versão (VCS) que registra alterações em um conjunto de arquivos ao longo do tempo, permitindo que você recupere qualquer versão anterior, veja quem mudou o quê e trabalhe no mesmo projeto em paralelo sem sobrescrever o trabalho alheio. É o VCS mais amplamente utilizado no desenvolvimento de software.
O Git foi criado em 2005 por Linus Torvalds, o autor do kernel Linux, para gerenciar o próprio código-fonte do Linux após o projeto perder acesso à ferramenta anterior. Hoje ele impulsiona projetos de todos os tamanhos, desde um único script até o próprio kernel Linux.
A característica definidora do Git é que ele é distribuído. Em vez de manter o histórico do projeto em um servidor central, cada desenvolvedor clona uma cópia completa do repositório — incluindo todo o histórico — em sua própria máquina. Você pode fazer commits, criar branches, visualizar o histórico e pesquisar o log completamente offline; só precisa de rede para compartilhar o trabalho com outras pessoas.
Distribuído vs. centralizado. Em um VCS centralizado (como o Subversion), há um servidor autoritativo e fazer commit requer conexão de rede. Em um VCS distribuído como o Git, cada clone é um backup completo, a maioria das operações é local e, portanto, rápida, e não há ponto único de falha.
Importância do Git
O Git é um VCS distribuído, rápido e eficiente que lida com projetos de qualquer tamanho, de pequenos scripts a grandes bases de código. Alguns motivos pelos quais ele é importante no dia a dia:
- Ramificação local barata. Criar um branch é quase instantâneo porque o Git apenas escreve um pequeno ponteiro, tornando a experimentação isolada a norma, e não a exceção. Veja git branch.
- Uma área de preparação conveniente. O Git permite que você monte exatamente quais alterações farão parte do próximo commit antes de registrá-lo, mantendo cada commit focado. Veja git add.
- Múltiplos fluxos de trabalho. A mesma ferramenta suporta um desenvolvedor solo e uma equipe de 100 pessoas. Veja Git workflows.
- Gratuito e de código aberto. Não há custo de licença e o código-fonte está aberto para inspeção e contribuição.
- Desenvolvimento não linear. Muitas linhas de trabalho podem prosseguir em paralelo e ser mescladas depois, permitindo que desenvolvedores e equipes trabalhem separadamente sem se prejudicarem.

Desempenho do Git
O Git foi construído para velocidade, e grande parte dessa velocidade vem do fato de que as operações são executadas no repositório local, e não em um servidor remoto. Ramificação, mesclagem, commit e comparação de versões anteriores são todos otimizados para parecer instantâneos mesmo em históricos extensos.
Uma decisão de design fundamental é que o Git rastreia conteúdo, não arquivos. Ao fazer um commit, o Git armazena um instantâneo do conteúdo de cada arquivo; se um arquivo não foi alterado entre commits, o Git armazena um ponteiro para o conteúdo idêntico que já possui, em vez de uma nova cópia. Como o armazenamento é indexado pelo conteúdo, o Git pode detectar quando um arquivo foi apenas renomeado, dividido ou reorganizado. No disco, os objetos do repositório usam uma combinação de codificação delta (armazenando diferenças entre objetos similares) e compressão zlib, mantendo mesmo históricos longos compactos.
Segurança do Git
A principal prioridade do Git é a integridade do código-fonte gerenciado. Cada objeto em um repositório — conteúdos de arquivos, diretórios, commits e tags — é identificado por um hash criptográfico de seu conteúdo. Como o hash de cada commit também incorpora o hash de seu pai, todo o histórico está encadeado: alterar qualquer conteúdo passado mudaria todos os hashes subsequentes, tornando adulterações silenciosas detectáveis.
O Git historicamente usou SHA-1 para esses hashes e está migrando para SHA-256 para fortalecer essa garantia. Além da integridade, você também pode verificar quem fez um commit assinando commits e tags com uma chave GPG ou SSH, permitindo que revisores confirmem que uma alteração veio de um autor confiável.
Flexibilidade do Git
Uma das vantagens oferecidas pelo Git é sua flexibilidade em vários aspectos:
- Rastrear alterações – Cada commit carrega um autor, um timestamp e uma mensagem, fornecendo sempre um registro legível do que mudou e por quê.
- Backup e restauração – Como cada clone contém o histórico completo, a máquina de cada desenvolvedor é efetivamente um backup e qualquer estado anterior pode ser restaurado.
- Colaboração – Equipes podem trabalhar no mesmo projeto simultaneamente e combinar seu trabalho por meio de mesclagem.
- Ramificação e mesclagem – O trabalho acontece em um branch e, quando revisado e aprovado, é mesclado de volta ao branch principal. O histórico mostra quem alterou cada arquivo e exatamente quais linhas diferem.
- Implantação – O Git não implanta o código em si, mas rastreia versões exatas e se integra perfeitamente com pipelines de CI/CD que compilam e entregam essas versões.

Controle de Versão com Git
Atualmente, o Git é o sistema de controle de versão mais preferido porque possui quase tudo o que os desenvolvedores precisam para obter resultados mais eficazes. Os principais motivos para isso estão listados abaixo:
- O Git é tão popular que a maioria dos desenvolvedores consegue trabalhar com ele antes mesmo de se formarem na faculdade ou universidade. Além disso, o Git é considerado a base dos sistemas de controle de versão, pois os desenvolvedores que já aprenderam a trabalhar com ele podem facilmente dominar outros sistemas.
- Devido à sua prevalência, muitas ferramentas e serviços de software importantes estão integrados ao Git.
- Há muitos livros, tutoriais e até sites especializados que podem ajudar os desenvolvedores a aprender Git.
- Como o Git é um software de código aberto, os desenvolvedores têm a oportunidade de usá-lo sem pagar nenhuma taxa.
A principal razão pela qual o Git é criticado é a dificuldade de aprendizado. Em particular, alguns termos usados no Git podem ter definições diferentes das de outros VCS. No entanto, vale a pena aprendê-lo, pois a capacidade de usar Git é uma excelente vantagem para equipes e desenvolvedores individuais e é uma das chaves para o sucesso futuro deles.
As soluções Git mais populares
Diversas plataformas de terceiros gerenciam repositórios Git e são amplamente utilizadas para o desenvolvimento de software rápido e eficaz. Os serviços de hospedagem baseados em Git mais populares são GitHub, Bitbucket e GitLab.
O GitHub é um serviço de hospedagem de repositórios baseado em Git, originalmente lançado em 2008 por Tom Preston-Werner, Chris Wanstrath e PJ Hyatt. É a maior plataforma de hospedagem de repositórios, com mais de 38 milhões de projetos. Permite hospedar e revisar código, gerenciar projetos e desenvolver software.
O Bitbucket foi lançado em 2008 por uma startup australiana e originalmente suportava apenas projetos Mercurial. Em 2010, o Bitbucket foi adquirido pela Atlassian e, a partir de 2011, começou a suportar hospedagem Git, que é agora seu foco principal. Oferece repositórios privados ilimitados e gratuitos, integração com Jira e Trello e entrega contínua integrada.
O GitLab começou como um projeto de Dmitriy Zaporozhets e Valery Sizov em 2011, com o objetivo de fornecer uma alternativa às soluções de gerenciamento de repositórios disponíveis. A empresa, no entanto, só foi formalmente constituída em 2014. Oferece integração e entrega contínua, desenvolvimento ágil, Auto DevOps, entre outros.
Comandos Básicos do Git
Depois que o Git está instalado, alguns comandos principais cobrem o fluxo de trabalho diário:
git init– Cria um novo repositório Git no diretório atual.git clone <url>– Baixa um repositório existente, com histórico completo, de um servidor remoto.git add <file>– Prepara as alterações para que sejam incluídas no próximo commit.git commit -m "message"– Registra as alterações preparadas como um novo instantâneo com uma mensagem descritiva.git status– Mostra quais arquivos foram alterados, preparados ou não rastreados.git push– Envia commits locais para um repositório remoto.
Um primeiro repositório, do início ao fim
A sequência abaixo inicia um novo projeto, registra um primeiro commit e inspeciona o resultado. Execute estes comandos em uma pasta vazia para acompanhar:
# 1. Start tracking the current folder
git init
# 2. Create a file and stage it for the next commit
echo "# My Project" > README.md
git add README.md
# 3. Record the snapshot
git commit -m "Add project README"
# 4. See the history you just created
git log --onelineA saída do git log --oneline é uma linha por commit — um hash curto seguido da mensagem:
a1b2c3d (HEAD -> main) Add project READMEA partir daqui, você adicionaria um repositório remoto e executaria git push para compartilhar o trabalho, ou criaria um branch para iniciar uma nova funcionalidade. O capítulo git log aprofunda a leitura do histórico.