
Imagine que você está escrevendo um livro no Microsoft Word.
Você cria um arquivo chamado:
livro.docx
Depois de algumas alterações, com medo de perder o trabalho, cria outro arquivo:
livro_final.docx
Mais tarde:
livro_final_agora_vai.docx
Depois:
livro_final_agora_vai_2.docx
E finalmente:
livro_final_definitivo_versao_certa.docx
Parece engraçado, mas praticamente todo mundo já fez isso.
O Git surgiu justamente para acabar com esse problema.
Em vez de criar dezenas de arquivos diferentes, o Git guarda o histórico completo de todas as alterações realizadas.
Você trabalha sempre no mesmo projeto e pode voltar para qualquer momento da sua história.
O que o Git registra?
Kit para programadores iniciantes
Notebook Dell Inspiron 15 3530 Intel Core i5
Notebook Dell Inspiron 15 com Intel Core i5, 16GB RAM e SSD de 1TB. Indicado para estudar programação, Git, GitHub, Java e desenvolvimento web.
Mouse sem fio Logitech MX Vertical com Design Ergonômico para Redução de Tensão Muscular, Conexão USB Unifying ou Bluetooth com Easy-Switch para até 3 dispositivos e Bateria Recarregável
Posição natural de aperto de mão com redução de 10% de esforço muscular Ângulo vertical de 57° para melhor postura de pulso

O Git registra praticamente tudo:
- arquivos criados;
- arquivos removidos;
- alterações em linhas específicas;
- quem fez a alteração;
- quando ela foi realizada;
- qual era o conteúdo anterior;
- qual é o conteúdo atual.
Isso significa que você nunca mais precisa ter medo de perder uma alteração importante.
Exemplo prático
Imagine um arquivo chamado:
calculadora.java
Primeira versão:
public class Calculadora {
}
Você salva um commit.
Mais tarde adiciona:
public class Calculadora {
public int somar(int a, int b){
return a+b;
}
}
Novo commit.
Depois adiciona:
public int subtrair(int a,int b){
return a-b;
}
Novo commit.
Alguns dias depois percebe que a função de subtração introduziu um erro.
Sem Git seria complicado recuperar.
Com Git basta voltar ao commit anterior.
Tudo continua salvo.
O que é um Commit?

O commit é uma das partes mais importantes do Git.
Imagine que você está jogando um videogame.
Sempre que encontra um ponto importante, salva o jogo.
Depois pode retornar exatamente para aquele momento.
O commit funciona exatamente assim.
Ele cria um ponto de restauração do projeto.
Cada commit possui:
- um identificador único;
- data;
- horário;
- autor;
- descrição.
Exemplo:
Commit:
8d2fa1b
Mensagem:
Criada funcionalidade de login
Mais tarde:
Commit:
a82fd91
Mensagem:
Corrigido erro na autenticação
Depois:
Commit:
e2a91bc
Mensagem:
Adicionado cadastro de usuários
Cada commit representa uma etapa da evolução do projeto.
A importância da mensagem do commit

Muitos iniciantes escrevem mensagens como:
Atualização
ou
teste
ou
Alterações
Isso é um erro.
Imagine daqui a dois anos tentando descobrir onde determinado problema foi corrigido.
O histórico ficará impossível de entender.
Boas mensagens são claras:
✅ Corrige erro na validação do CPF
✅ Adiciona tela de cadastro de clientes
✅ Implementa autenticação JWT
✅ Remove código duplicado
O que é o Staging Area?

Antes de criar um commit existe uma etapa chamada Staging Area.
Ela funciona como uma área de preparação.
Imagine que você está enviando documentos pelos Correios.
Primeiro você separa tudo que deseja enviar.
Depois coloca na caixa.
Somente então despacha.
No Git acontece a mesma coisa.
Fluxo:
Editar arquivo
↓
Adicionar ao Stage
↓
Criar Commit
Os comandos são:
git add arquivo.java
ou
git add .
Depois:
git commit -m "Mensagem do commit"
Livros sobre Git
Controlando versões com Git e GitHub
Controlando versões com Git e GitHub. Produto recomendado para estudos, programação e produtividade.
Git e GitHub: Seu Código Versionado: Aprenda de uma vez por todas e sem enrolação (Programação para Iniciantes)
Git e GitHub: Seu Código Versionado: Aprenda de uma vez por todas e sem enrolação (Programação para Iniciantes). Produto recomendado para estudos, programação e produtividade.
Git & GitHub Descomplicados: Do zero ao avançado: um guia passo a passo para dominar versionamento, colaboração e desenvolvimento moderno
Git & GitHub Descomplicados: Do zero ao avançado: um guia passo a passo para dominar versionamento, colaboração e desenvolvimento moderno. Produto recomendado para estudos, programação e produtividade.
O que significa HEAD?

Outro conceito muito importante.
O HEAD representa onde você está atualmente no histórico.
Imagine uma sequência de commits.
A ---- B ---- C ---- D
↑
HEAD
O HEAD aponta para o commit atual.
Se você voltar para outro commit:
A ---- B ---- C ---- D
↑
HEAD
Agora você está visualizando o estado do projeto naquele momento.
O que é um Branch?

Imagine uma árvore.
Ela possui:
- tronco;
- galhos;
- folhas.
O projeto funciona da mesma maneira.
A branch principal geralmente chama-se:
main
ou antigamente:
master
Quando queremos desenvolver uma nova funcionalidade sem mexer no código principal, criamos uma nova branch.
Exemplo:
main
|
Nova funcionalidade
|
Correção de Login
|
Novo Relatório
Cada desenvolvedor pode trabalhar em uma branch diferente.
Depois todas elas são unidas.
Exemplo visual
main
|
|------ login
|
|------ cadastro
|
|------ relatório
Cada linha representa um trabalho independente.
Isso evita conflitos e permite que várias pessoas desenvolvam ao mesmo tempo.
Por que usar Branches?

Imagine que seu sistema esteja funcionando perfeitamente.
Agora o cliente pede:
- integração com PIX;
- login pelo Google;
- emissão de boletos.
Você não quer modificar diretamente o sistema em produção.
Então cria uma branch:
feature/pix
Desenvolve tudo nela.
Se algo der errado, basta apagar essa branch.
O sistema principal continua intacto.
Essa é uma das maiores vantagens do Git.
O que é Merge?

Depois que uma funcionalidade está pronta, chega o momento de juntá-la ao projeto principal.
Essa união recebe o nome de Merge.
Exemplo:
Antes:
main
A----B----C
\
D----E
Depois do Merge:
A----B----C--------F
\ /
D------E
Agora todas as alterações fazem parte do projeto principal.
Conflito de Merge

Nem sempre o Merge acontece automaticamente.
Imagine duas pessoas editando exatamente a mesma linha.
Pessoa A:
String nome = "Michel";
Pessoa B:
String nome = "João";
O Git não consegue decidir qual alteração deve permanecer.
Ele marca um conflito.
Você escolhe manualmente qual código ficará.
Não é um erro do Git.
É um mecanismo de proteção para evitar perda de trabalho.





Deixe um comentário