Mapa Interativo Git
Guia completo do básico ao avançado
Introdução ao Git
Git é um sistema de controle de versão distribuído que permite rastrear mudanças em arquivos e coordenar trabalho entre múltiplas pessoas. É fundamental para o desenvolvimento de software moderno.
Conceitos Fundamentais
Git mantém um histórico completo de todas as alterações em seu código, permitindo voltar a versões anteriores, criar ramificações paralelas e colaborar eficientemente com outros desenvolvedores.
Repositório
Diretório que contém seu projeto e todo o histórico de versões
Commit
Snapshot do seu projeto em um momento específico
Branch
Linha de desenvolvimento paralela e independente
Configuração Global
Antes de usar o Git, é importante configurar suas informações pessoais. Estas configurações serão usadas em todos os commits que você fizer.
Por que Configurar?
Cada commit no Git é assinado com o nome e email do autor. Isso é crucial para rastreabilidade e colaboração em equipe. A flag –global aplica essas configurações para todos os repositórios do seu sistema.
Use este comando para verificar suas configurações atuais.
git init – Inicializando Repositório
O comando git init cria um novo repositório Git local. Este é sempre o primeiro passo ao começar um novo projeto com controle de versão.
O que Acontece?
O git init cria uma pasta oculta .git no diretório atual, que contém toda a estrutura necessária para o controle de versão: histórico de commits, configurações, referências de branches, etc.
Estrutura Criada:
📁 meu-projeto/
📁 .git/ (pasta oculta com metadados do Git)
📁 objects/, refs/, hooks/…
git add – Preparando Arquivos
O git add move arquivos do diretório de trabalho para a staging area (área de preparação). É aqui que você decide quais mudanças farão parte do próximo commit.
Staging Area
A staging area é como uma “área de preparação” onde você organiza as mudanças antes de confirmar (commit). Permite commits granulares e organizados, incluindo apenas as modificações relacionadas.
git commit – Salvando Mudanças
O git commit cria um snapshot permanente das mudanças na staging area. Cada commit é identificado por um hash único e contém uma mensagem descritiva.
Boas Práticas para Mensagens
Use o imperativo, seja conciso mas descritivo: “Adiciona validação de email”, “Corrige bug na autenticação”, “Remove código depreciado”.
Commit Hash
Identificador único SHA-1 de 40 caracteres para cada commit
Autor e Data
Informações de quem fez o commit e quando foi feito
Mensagem
Descrição clara das mudanças implementadas
git status – Verificando Estado
O git status mostra o estado atual do repositório: arquivos modificados, arquivos na staging area, arquivos não rastreados e a situação da branch atual.
Interpretando o Status
Verde: arquivos na staging area (prontos para commit). Vermelho: arquivos modificados mas não adicionados. Não listados: arquivos não modificados.
Estados dos Arquivos:
📗 Staged – Prontos para commit
📕 Modified – Modificados, não staged
📙 Untracked – Não rastreados pelo Git
git log – Visualizando Histórico
O git log exibe o histórico de commits do repositório, mostrando informações detalhadas sobre cada mudança registrada no projeto.
Opções Úteis
–oneline: versão compacta. –graph: visualização gráfica das branches. -n 5: mostra apenas os últimos 5 commits. –author=”nome”: filtra por autor.
Hash do Commit
Identificador único para referenciá-lo
Metadados
Autor, email, data e hora do commit
Mensagem
Descrição das alterações realizadas
git remote – Conectando Repositório
Para colaborar e fazer backup do seu código, você precisa conectar seu repositório local a um repositório remoto (GitHub, GitLab, etc.).
Origin – Repositório Principal
“Origin” é o nome padrão dado ao repositório remoto principal. Você pode ter múltiplos remotos com nomes diferentes para diferentes propósitos.
Verifica os repositórios remotos configurados.
git push – Enviando Mudanças
O git push envia seus commits locais para o repositório remoto, sincronizando seu trabalho e tornando-o disponível para outros colaboradores.
Flag -u (upstream)
A flag -u estabelece uma conexão de rastreamento entre sua branch local e a remota. Após configurar, você pode usar apenas “git push” nas próximas vezes.
origin
Nome do repositório remoto de destino
main
Nome da branch que está sendo enviada
Upstream
Conexão automática entre branches local e remota
git pull – Sincronizando Mudanças
O git pull baixa e integra mudanças do repositório remoto para seu repositório local. É essencial para manter-se atualizado em projetos colaborativos.
Pull = Fetch + Merge
O git pull é uma combinação de git fetch (baixa mudanças) e git merge (integra mudanças). Primeiro baixa as atualizações, depois as mescla com sua branch local.
Fluxo de Sincronização:
Remote → Fetch → Local → Merge → Working Directory
Apenas baixa mudanças sem fazer merge automático.
git branch – Gerenciando Branches
Branches permitem desenvolvimento paralelo, criando linhas independentes de desenvolvimento. Ideal para features, experimentos e correções sem afetar o código principal.
Estratégia de Branches
main/master: código principal estável. feature/*: novas funcionalidades. hotfix/*: correções urgentes. develop: integração de features antes do main.
feature
Deleta branch após merge.
Fluxo Completo de Trabalho
Agora você conhece todos os comandos fundamentais. Aqui está um resumo do fluxo típico de trabalho com Git para consolidar seu conhecimento.
1. Configuração Inicial
git config, git init, git remote add
2. Trabalho Diário
git add, git commit, git status
3. Sincronização
git push, git pull, git fetch
4. Colaboração
git branch, git merge, git log
Próximos Passos
Continue praticando com projetos reais. Explore comandos avançados como rebase, stash, reset. Aprenda sobre GitFlow e boas práticas de commit. O Git tem muito mais recursos para descobrir!
Parabéns! Você completou o Mapa Interativo Git!
Agora você tem uma base sólida para usar Git em seus projetos.
