Guia de Git — Do Básico ao Avançado

Aprenda Git de forma clara e progressiva

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

Recursos Adicionais