Guia Prático de Git: Do Básico ao Avançado
Guia Prático de Git: Do Básico ao Avançado
Este documento provê uma síntese estruturada das ferramentas e comandos do Git, baseada na documentação de referência oficial. O guia está organizado por níveis de complexidade para auxiliar desenvolvedores em suas rotinas diárias, desde a configuração inicial até a administração avançada de repositórios.
--------------------------------------------------------------------------------
1. Nível Básico: Configuração e Fluxo de Trabalho Inicial
Este nível abrange os comandos fundamentais para configurar o ambiente, iniciar projetos e gerenciar o estado local dos arquivos (snapshotting).
Configuração e Ajuda
Antes de iniciar o desenvolvimento, é necessário estabelecer as bases do ambiente.
Comando
Descrição
git config
Configura opções de personalização e variáveis de ambiente.
git help
Acessa informações detalhadas e manuais sobre comandos específicos.
git bugreport
Auxilia na coleta de informações do sistema para relatar falhas no Git.
Credential helpers
Ferramentas auxiliares para armazenamento e gestão de credenciais.
Criação de Projetos e Snapshots
O ciclo de vida básico de um arquivo no Git envolve preparar alterações e registrá-las no histórico.
- git init: Cria um novo repositório Git local.
- git clone: Clona um repositório existente para uma nova pasta.
- git add: Adiciona o conteúdo do arquivo ao índice (staging area).
- git status: Exibe o estado atual do diretório de trabalho e da área de stage.
- git commit: Grava as alterações enviadas para o stage no histórico do repositório.
- git diff: Mostra as alterações entre commits, entre o commit e a árvore de trabalho, etc.
- git restore: Restaura arquivos na árvore de trabalho.
- git reset: Redefine o HEAD atual para um estado específico.
- git rm / git mv: Remove ou move arquivos do índice e da árvore de trabalho.
--------------------------------------------------------------------------------
2. Nível Intermediário: Colaboração e Ramificação
No nível intermediário, o foco expande-se para o trabalho com múltiplas frentes de desenvolvimento (branching) e a sincronização com repositórios remotos.
Ramificação (Branching) e Integração (Merging)
Gerenciar diferentes linhas de desenvolvimento de forma isolada e combiná-las posteriormente.
- git branch: Lista, cria ou exclui branches.
- git checkout / git switch: Alterna entre branches ou restaura arquivos.
- git merge: Une o histórico de duas ou mais branches.
- git stash: Armazena temporariamente alterações não commitadas para limpeza do diretório de trabalho.
- git tag: Cria, lista ou deleta etiquetas para marcar pontos específicos no histórico (ex: versões).
- git log: Exibe os logs de commit.
- git notes: Adiciona ou inspeciona notas em objetos do Git.
Compartilhamento e Atualização
Comandos essenciais para interação com servidores remotos e outros desenvolvedores.
- git remote: Gerencia o conjunto de repositórios rastreados ("remotes").
- git fetch: Baixa objetos e referências de outro repositório.
- git pull: Busca (fetch) e integra (merge) o conteúdo de outro repositório ou branch local.
- git push: Atualiza as referências remotas e os objetos associados.
- git submodule: Inicializa, atualiza ou inspeciona submódulos dentro de um repositório.
--------------------------------------------------------------------------------
3. Nível Avançado: Depuração, Patches e Administração
O nível avançado lida com a manipulação fina do histórico, resolução de problemas complexos e manutenção do repositório.
Manipulação de Histórico e Patches
Técnicas para reescrever o histórico ou aplicar alterações de forma seletiva.
Comando
Função
git rebase
Reaplica commits sobre outra base de ponta.
git cherry-pick
Aplica as alterações introduzidas por alguns commits existentes.
git revert
Reverte commits existentes criando novos commits de inversão.
git apply
Aplica um patch em arquivos e/ou no índice.
git am
Aplica uma série de patches de uma caixa de correio (mailbox).
Depuração e Inspeção Profunda
Ferramentas para localizar a origem de bugs ou analisar o histórico detalhadamente.
- git bisect: Usa busca binária para encontrar o commit que introduziu um bug.
- git blame: Mostra qual revisão e autor modificaram cada linha de um arquivo pela última vez.
- git grep: Busca padrões em arquivos rastreados.
- git show: Mostra vários tipos de objetos (commits, tags, etc.).
- git range-diff: Compara duas faixas de commits (útil após rebases).
Administração e Manutenção do Repositório
Comandos utilizados para otimização e limpeza interna do Git.
- git gc: Limpa arquivos desnecessários e otimiza o repositório local.
- git fsck: Verifica a conectividade e a validade dos objetos no banco de dados.
- git reflog: Gerencia informações do log de referências (útil para recuperar commits "perdidos").
- git clean: Remove arquivos não rastreados do diretório de trabalho.
- git worktree: Permite gerenciar múltiplas árvores de trabalho conectadas ao mesmo repositório.
--------------------------------------------------------------------------------
4
. Referência Técnica: Comandos de Baixo Nível (Plumbing)
Para tarefas de automação ou entendimento profundo da arquitetura do Git, utilizam-se os comandos de "plumbing", que manipulam objetos diretamente:
- Inspeção de Objetos:
cat-file,ls-files,ls-tree. - Manipulação de Referências:
update-ref,show-ref,rev-parse. - Criação de Objetos:
hash-object,write-tree,commit-tree. - Integridade:
verify-pack,count-objects.
Este guia resume os pilares da ferramenta Git, permitindo que o desenvolvedor transite entre tarefas simples de snapshotting até a gestão complexa de fluxos de trabalho e manutenção de integridade de dados.



