🐐 Git SCM (Sistema de Controle de Versão)
O que é Git?
Git é um sistema de controle de versionamento distribuído. Ele permite que você controle as modificações de um projeto ao longo do tempo por meio de versões chamadas “commits”. Cada commit é como uma fotografia do seu projeto em um determinado ponto, registrando o que foi alterado.
Imagine o histórico de um projeto como uma linha do tempo de commits:
e8aab78 (commit 1) <-- 38k2ane (commit 2) <-- c9g57ef (commit 3) <-- k2f89m3 (commit 4)
Benefícios do Git:
- Histórico de Alterações: Você pode ver quem alterou o quê e quando.
- Reversão de Mudanças: Facilidade para voltar a versões anteriores do projeto caso algo dê errado.
- Trabalho em Equipe: Permite que múltiplos desenvolvedores trabalhem no mesmo projeto de forma organizada.
- Ramificações (Branches): Desenvolvedores podem trabalhar em novas funcionalidades ou correções de forma isolada em “branches” sem afetar a versão principal do projeto.
🛠️ Instalação e Configuração do Git
Instalação do Git no Computador
Antes de usar o Git, você precisa instalá-lo. Você pode encontrar os downloads e instruções em: https://git-scm.com/downloads
Configurando sua Identificação no Git
Após a instalação, configure seu nome de usuário e email. Essa informação será usada para identificar seus commits.
Abra um terminal ou prompt de comando e execute:
git config --global user.name "Seu Nome Completo"
git config --global user.email "seu_email_cadastrado_no_github@exemplo.com"
Para verificar as configurações:
git config --list
🔍 Comandos e Conceitos Fundamentais
git init
- O que faz: Inicializa um novo repositório Git na pasta atual do seu projeto. Cria uma subpasta oculta chamada
.gitque armazena todas as informações do versionamento.git init
git status, git add e o “Stage” (Área de Preparação)
O Git tem um conceito chamado “área de stage” (ou “index”). É uma área intermediária onde você prepara as alterações que farão parte do próximo commit.
O fluxo é:
modified/untracked(Modificado / Não Rastreado): Seus arquivos no diretório de trabalho.git statusmostra esses arquivos.staged(Preparado): Você usagit add <arquivo>para mover as alterações para a área de stage.committed(Commitado): Você usagit commitpara salvar o que está na área de stage como uma nova versão.
git add .: Adiciona todos os arquivos e modificações do diretório de trabalho atual à área de stage.git add .git commit -m "Mensagem": Salva as alterações que estão na área de stage como uma nova versão (commit) no seu repositório local.git commit -m "Primeiro commit: Estrutura inicial do projeto"
Verificando o Histórico de Versões 📜
git log: Mostra o histórico completo de commits, com detalhes como autor, data e mensagem.git loggit log --oneline: Mostra uma listagem resumida do histórico de commits.git log --oneline
git diff
- O que faz: Mostra as diferenças entre os arquivos modificados e a última versão commitada ou entre diferentes estados/commits.
git diff: Mostra as alterações no diretório de trabalho que ainda não foram para o stage.git diff --staged: Mostra as alterações que estão no stage.
git checkout: Navegando entre Versões
-
O que faz: Permite modificar temporariamente os arquivos do seu projeto para o estado de um dado commit ou branch.
-
HEAD: É uma referência especial que aponta para o último commit. -
HEAD~N: Refere-se a um commit N versões antes deHEAD(HEAD~1é o penúltimo).# Voltar para o estado de um commit específico git checkout <hash_do_commit> # Voltar para o penúltimo commit git checkout HEAD~1 # Para voltar para o commit mais recente da sua branch git checkout main -
Desfazendo alterações locais:
# Descarta todas as alterações nos arquivos monitorados git checkout -- . # CUIDADO: remove arquivos não rastreados permanentemente! git clean -df
Ignorando Arquivos com .gitignore 🚫
- O que é: O
.gitignoreé um arquivo de texto onde você lista arquivos e pastas que o Git deve ignorar. - Casos Comuns para Ignorar:
- Arquivos Compilados e de Build:
target/,build/,dist/,*.class. - Dependências:
node_modules/. - Arquivos de IDEs:
.vscode/,.idea/. - Arquivos de Sistema Operacional:
.DS_Store,Thumbs.db. - Arquivos de Credenciais:
.env, senhas, chaves de API.
- Arquivos Compilados e de Build:
📚 Recursos Adicionais
Ferramentas Gerais
- Visual Studio Code: Editor de código recomendado. Download.
Focados em Git
- Documentação Oficial do Git
- Pro Git Book - Um livro completo e gratuito.
- Atlassian Git Tutorials