Introdução ao Git
Git é um sistema de controle de versão distribuído. Ele permite versionar código, colaborar em equipe e manter histórico de alterações.
Configuração Inicial
Configure seu nome e e-mail, usados para assinar os commits:
git config --global user.name "Seu Nome" # Define seu nome de usuário global
git config --global user.email "email@exemplo.com" # Define seu e-mail global
# Visualiza todas as configurações feitas:
git config --list
Fluxo Básico de Trabalho
Etapas comuns ao usar o Git em projetos:
# Clona um repositório remoto
$ git clone https://github.com/usuario/repo.git
# Mostra o estado atual dos arquivos (modificados, não rastreados etc)
$ git status
# Adiciona todos os arquivos modificados ao stage (pronto para commit)
$ git add .
# Cria um commit com uma mensagem descritiva
$ git commit -m "mensagem"
# Envia as mudanças para o repositório remoto na branch main
$ git push origin main
Branches (Ramificações)
Uma branch é como uma linha do tempo paralela ao código principal, onde você pode desenvolver funcionalidades ou corrigir problemas sem afetar diretamente a base do projeto. Após os testes, essa branch pode ser mesclada (merge) com a principal.
Branches permitem trabalhar em novas funcionalidades sem afetar o código principal:
# Cria uma nova branch e já muda para ela
$ git checkout -b nova-feature
# Volta para a branch principal
$ git checkout main
# Mescla a nova-feature com a branch atual
$ git merge nova-feature
# Exclui uma branch local
$ git branch -d nova-feature
Trabalhando com Remotos
Gerencie conexões com repositórios remotos como GitHub ou GitLab:
# Lista os repositórios remotos configurados
$ git remote -v
# Adiciona um novo remoto com nome "origin"
$ git remote add origin https://github.com/usuario/repo.git
# Baixa atualizações do remoto
$ git fetch
# Mescla as alterações do remoto com a branch atual
$ git pull origin main
# Envia as alterações locais para o remoto
$ git push origin main
Resolução de Conflitos
Conflitos surgem quando dois commits alteram a mesma linha de um arquivo. O Git marca essas áreas para revisão manual:
# Após resolver os conflitos manualmente:
$ git add arquivo-resolvido.txt
$ git commit # Finaliza o merge
Comandos Avançados
Comandos úteis para cenários mais complexos:
# Salva temporariamente alterações não commitadas
$ git stash
# Restaura as alterações salvas com stash
$ git stash pop
# Reverte um commit específico, criando um novo commit
$ git revert
# Remove todos os commits após o hash (perigoso - perda de dados)
$ git reset --hard
# Reescreve o histórico dos últimos commits (interativo)
$ git rebase -i HEAD~3
# Visualiza o histórico em forma de gráfico
$ git log --oneline --graph --all
Boas Práticas
- Faça commits pequenos e frequentes
- Escreva mensagens claras e descritivas
- Use branches para cada nova funcionalidade
- Atualize sua branch com frequência
- Use
rebase
com cuidado para manter um histórico limpo