Seu Guia Essencial de Comandos Git

Este guia prático reúne os comandos Git mais utilizados no dia a dia, desde o início do desenvolvimento em uma nova branch até a integração das suas alterações. Ideal para quem está começando ou precisa de uma referência rápida.

Fluxo de Criação e Desenvolvimento de Branch

  1. Navegar entre branches:
    git checkout [nome_branch]
    Este comando permite alternar para uma branch existente.
  2. Baixar as últimas alterações da branch remota:
    git pull
    Use este comando para integrar as mudanças da branch remota para a sua branch local. É crucial executar antes de começar a trabalhar ou enviar suas alterações.
  3. Criar uma nova branch e mudar para ela:
    git checkout -b [nova_branch]
    Esta é uma forma rápida de criar uma nova branch local baseada na branch atual e já se mover para ela.
  4. Enviar a nova branch para o repositório remoto e configurar o rastreamento (upstream):
    git push -u origin [nova_branch]
    Ao usar -u pela primeira vez em uma nova branch, você define uma ligação com a branch remota de mesmo nome. Isso permite usar git push e git pull de forma mais simples no futuro.
  5. Preparar as alterações para o commit (stage):
    git add .
    O comando git add . adiciona todas as alterações nos arquivos rastreados ao ambiente de staging, preparando-os para serem incluídos no próximo commit. Para adicionar arquivos específicos, use git add [nome_do_arquivo].
  6. Registrar as alterações com uma mensagem descritiva (commit):
    git commit -m "mensagem clara e concisa sobre as alterações"
    A mensagem do commit é fundamental para entender o histórico do projeto. Seja claro e objetivo ao descrever as mudanças realizadas.
  7. Enviar as alterações para o repositório remoto (push):
    git push
    Após o primeiro git push -u, você pode usar apenas git push para enviar seus commits para a branch remota rastreada.

Integrando Alterações (Merge)

  1. Voltar para a branch principal (pai):
    git checkout [branch_pai]
    Normalmente, a branch principal é main ou master.
  2. Atualizar a branch principal com as últimas alterações remotas:
    git pull
    Certifique-se de que sua branch principal esteja atualizada antes de integrar outras branches.
  3. Realizar o merge da branch de funcionalidade na branch principal (sem “fast-forward”):
    git merge --no-ff -m "Merge da branch [nome_branch] para [branch_pai]"
    O flag --no-ff força a criação de um commit de merge, preservando o histórico da branch de funcionalidade como um nó separado, o que torna o rastreamento mais claro.
  4. Enviar a branch principal atualizada para o repositório remoto:
    git push

Utilitários e Limpeza

  1. Sair do editor de texto do Git (como o Vim):
    Pressione a tecla Esc, digite :wq e pressione Enter. (w para salvar, q para sair).
  2. Deletar uma branch local:
    git branch -d [nome_branch]
    Use -D (maiúsculo) para forçar a exclusão de uma branch que não foi completamente mergeada.
  3. Remover referências a branches remotas que não existem mais:
    git remote prune origin
    Este comando limpa sua lista de branches remotas, removendo aquelas que já foram deletadas no repositório remoto (origin é o nome padrão do seu repositório remoto principal).
  4. Desfazer o último commit local (sem perder as alterações):
    git reset --soft HEAD~1
    Isso move o ponteiro HEAD para o commit anterior, mas mantém as alterações no seu staging area.
  5. Desfazer o último commit local e remover as alterações do staging area:
    git reset --mixed HEAD~1
    Este é o comportamento padrão do git reset.
  6. Desfazer o último commit local e descartar todas as alterações:
    git reset --hard HEAD~1
    Cuidado! Este comando descarta todas as alterações não commitadas. Use com precaução.
  7. Forçar o envio de um commit alterado para o repositório remoto (se o commit já foi enviado):
    git push origin HEAD --force
    Extremo cuidado! Forçar o push pode sobrescrever o trabalho de outros colaboradores. Use apenas em situações muito específicas e quando tiver certeza do que está fazendo. Uma alternativa mais segura é usar git revert para criar um novo commit que desfaça as alterações do commit anterior.

Outros Comandos Úteis

  • Visualizar o histórico de commits:
    git log
    Exibe o histórico de commits com informações detalhadas. Use git log --oneline --graph --decorate --all para uma visão mais compacta e gráfica.
  • Ver o status dos seus arquivos (modificados, adicionados, etc.):
    git status
  • Comparar as alterações entre commits, branches, etc.:
    git diff [branch1] [branch2]
    git diff --staged
    O primeiro comando mostra as diferenças entre duas branches. O segundo mostra as diferenças entre a área de staging e o último commit.
  • Adicionar um repositório remoto:
    git remote add origin [URL_do_repositorio]
    Isso conecta seu repositório local a um repositório remoto. origin é o nome de convenção para o repositório remoto principal.
  • Listar os repositórios remotos configurados:
    git remote -v
  • Trazer as informações sobre as branches remotas sem mesclar:
    git fetch
    Útil para verificar as mudanças no repositório remoto antes de integrar com git merge ou git pull.

Espero que este guia seja útil no seu dia a dia! 😊