Entender o que é o Git, por que ele existe e como usar seus principais comandos no dia a dia de desenvolvimento. Aqui não tem GitHub, GitLab ou afins — foco total no Git local.
Git é um sistema de controle de versão distribuído. Em português claro: ele guarda o histórico do seu código, permite voltar no tempo, comparar mudanças e trabalhar sem medo de quebrar tudo.
Sem Git:
- Alterou algo e deu ruim? Chora.
- Duas versões do mesmo arquivo:
final_v2_agora_vai.js
Com Git:
- Histórico organizado
- Mudanças rastreadas
- Experimentos sem pânico
É a pasta do projeto monitorada pelo Git.
Onde você edita os arquivos. O caos acontece aqui.
Área intermediária onde você diz ao Git:
"Essas mudanças aqui eu quero salvar. O resto ignora por enquanto."
Uma foto do estado do projeto em um determinado momento.
git init- Cria a pasta
.git - A partir daqui, o Git começa a vigiar seus passos
Para conferir o estado:
git status- Edita arquivos
git addgit commit
Repete até o fim da vida
Mostra:
- Arquivos modificados
- Arquivos prontos para commit
- Arquivos não rastreados
git statusUse sem dó. É seu painel de controle.
Adiciona arquivos à staging area.
Adicionar um arquivo específico:
git add index.jsAdicionar tudo:
git add .git add . não é pecado, mas saiba o que está indo junto.
Cria um commit com as mudanças adicionadas.
git commit -m "mensagem do commit"Boas mensagens:
- Curta
- Clara
- Diz o que mudou, não como você se sentiu
Exemplo bom:
git commit -m "adiciona validação no formulário"Exemplo ruim:
git commit -m "funciona agora"Mostra o histórico de commits.
git logVersão mais legível:
git log --onelineCada commit tem um hash (identificador único).
Mostra diferenças entre versões.
Ver mudanças ainda não adicionadas:
git diffVer mudanças já adicionadas:
git diff --stagedIdeal para revisar antes de commitar.
Descartar alterações em um arquivo:
git restore index.jsRemover da staging area:
git restore --staged index.jsVoltar um arquivo para o estado de um commit:
git checkout <hash> -- index.jsOu voltar tudo:
git checkout <hash>Isso é poderoso. E perigoso.
Branch é uma linha independente de commits.
Branch padrão:
mainoumaster
Criar branch:
git branch nova-featureTrocar de branch:
git checkout nova-featureCriar e trocar de uma vez:
git checkout -b nova-featureUne uma branch à outra.
git merge nova-featureSe tudo der certo: alegria.
Se der conflito: resolve no código, depois commit.
Acontecem quando:
- Duas mudanças no mesmo trecho
O Git marca assim:
<<<<<<< HEAD
código atual
=======
código da outra branch
>>>>>>> nova-feature
Você decide, limpa e commita.
Salvar mudanças sem commitar:
git stashVoltar depois:
git stash popÚtil quando você começou algo no lugar errado.
Define o que o Git não deve rastrear.
Exemplo:
node_modules/
.env
dist/
Se não ignorar, uma hora você vai se arrepender.
git init→ começa tudogit status→ onde estou?git add→ preparagit commit→ salvagit log→ históricogit diff→ diferençasgit branch / checkout→ linhas paralelasgit merge→ juntar tudo
Git não é difícil. Só é literal.