Conceitos Básicos do Git
Como o Git Funciona
O Git funciona de forma diferente de outros VCS. Em um outro VCS ele terá os arquivos e quando houver alteração eles criam uma lista somente das alterações.
Em um outro VCS ele terá os arquivos e quando houver alteração eles criam uma lista somente das alterações:
Agora com o Git ele faz diferente, já que vai tirando snapshots que são como fotos quando ocorre uma mudança e caso tenha algum arquivo que não foi alterado será guardado uma referencia para ele, assim pode ser recuperado.
Estrutura de Diretórios
Assim temos três níveis principais:
Diretório de trabalho (Working Directory)
Área de preparo (Staging Area)
Diretório
.git
que vai ser o repositório ou banco de dados local
Working Directory
É onde você realmente trabalha com seus arquivos. Aqui você pode:
Criar novos arquivos
Modificar arquivos existentes
Deletar arquivos
Staging Area
Também conhecida como "Index", é uma área intermediária onde você prepara as mudanças que farão parte do próximo commit.
Repositório Local (.git)
O coração do Git, onde todo o histórico do projeto é armazenado:
Commits
Branches
Tags
Configurações
Estados dos Arquivos
Ciclo de Vida
Estados Possíveis
Untracked: Arquivos que o Git não conhece
Tracked: Arquivos que o Git está monitorando
Modified: Alterados mas não preparados
Staged: Preparados para commit
Committed: Salvos no repositório
Comandos Básicos Essenciais
Configuração Inicial
Iniciando um Repositório
Operações Básicas
Boas Práticas de Commit
Mensagens de Commit
Conventional Commits
Padrão para mensagens de commit:
feat
: Nova funcionalidadefix
: Correção de bugdocs
: Documentaçãostyle
: Formataçãorefactor
: Refatoraçãotest
: Testeschore
: Tarefas gerais
Desfazendo Alterações
No Working Directory
Na Staging Area
Em Commits
Branches
Conceitos Básicos
Operações com Branches
Merge e Rebase
Merge
Rebase
Resolução de Conflitos
Tipos Comuns de Conflitos
Edição na mesma linha
Arquivo deletado x modificado
Renomeação x modificação
Processo de Resolução
Dicas e Truques
Aliases Úteis
Ferramentas Visuais
GitKraken
SourceTree
GitHub Desktop
VS Code Git
Produtividade
Próximos Passos
O que Estudar Depois
Git Remoto (GitHub, GitLab, etc)
Workflows avançados
Git Hooks
CI/CD com Git