Skip to content

LenoSeibert/comandos-git

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 

Repository files navigation

Manual Completo do Git

Índice


Configurações Iniciais

Instalação do Git

# Linux (Debian/Ubuntu e derivados)
sudo apt install git

# Verificar instalação
git --version

Configuração de Identidade

# Definir nome de usuário (obrigatório)
git config --global user.name "Seu Nome"

# Definir email (obrigatório)
git config --global user.email "[email protected]"

# Essas configurações identificam você nos commits

Configuração do Editor Padrão

# VS Code como editor padrão
git config --global core.editor "code -w"

# Alternativas:
# Nano
git config --global core.editor "nano"

# Vim
git config --global core.editor "vim"

Interface Colorida

# Ativar cores no terminal (recomendado)
git config --global color.ui true

Visualizar Configurações

# Listar todas as configurações
git config --list

# Ver configuração específica
git config user.name
git config user.email

# Ver onde cada configuração está definida
git config --list --show-origin

Ajuda e Documentação

# Manual completo do Git
man git

# Ajuda geral
git help

# Ajuda de comando específico (abre no navegador)
git help <comando>

# Exemplos:
git help clone
git help commit
git help branch

# Ajuda rápida no terminal
git <comando> -h
# Exemplo: git commit -h

Inicializando Repositórios

Criar Novo Repositório

# Dentro da pasta do projeto
git init

# Verificar se o repositório foi criado
ls -la  # Deve mostrar a pasta .git

⚠️ ATENÇÃO: Todo o histórico e configurações ficam na pasta .git. Apagar esta pasta resultará na perda completa do histórico do projeto.

Clonar Repositório Existente

# Clonar repositório remoto
git clone https://github.com/usuario/repositorio.git

# Clonar com nome personalizado
git clone https://github.com/usuario/repositorio.git novo-nome

Trabalhando com Commits

Os Três Estados do Git

  1. Working Directory: Arquivos modificados mas não preparados
  2. Staging Area: Arquivos preparados para commit
  3. Repository: Arquivos commitados (salvos no histórico)

Verificar Status

# Ver status atual dos arquivos
git status

# Versão resumida
git status -s

Adicionar Arquivos ao Stage

# Adicionar todos os arquivos modificados
git add .

# Adicionar arquivo específico
git add nome-do-arquivo.txt

# Adicionar por extensão
git add *.js
git add *.php
git add *.html

# Adicionar pasta específica
git add pasta/

# Adicionar interativamente
git add -i

Remover Arquivos do Stage

# Remover arquivo específico do staging
git restore --staged nome-do-arquivo.txt

# Remover todos os arquivos do staging
git restore --staged .

# Comando antigo (ainda funciona)
git reset HEAD nome-do-arquivo.txt

Criar Commit

# Commit com mensagem
git commit -m "Descrição clara e objetiva das alterações"

# Commit com título e descrição
git commit -m "Título do commit" -m "Descrição detalhada"

# Adicionar e commitar em um comando (apenas arquivos já rastreados)
git commit -am "Mensagem do commit"

# Abrir editor para mensagem longa
git commit

Corrigir Último Commit

# Adicionar arquivos esquecidos ao último commit
git add arquivo-esquecido.txt
git commit --amend --no-edit

# Alterar mensagem do último commit
git commit --amend -m "Nova mensagem"

💡 Dica: Use --amend apenas para commits que ainda não foram enviados para repositório remoto.


Histórico e Logs

Visualizar Histórico

# Histórico completo
git log

# Histórico resumido (uma linha por commit)
git log --oneline

# Últimos N commits
git log -n 5

# Histórico com gráfico
git log --oneline --graph --all

# Histórico de um arquivo específico
git log nome-do-arquivo.txt

# Histórico com diferenças
git log -p

# Estatísticas dos commits
git log --stat

Buscar no Histórico

# Buscar por palavra-chave na mensagem
git log --grep="palavra-chave"

# Buscar por autor
git log --author="Nome do Autor"

# Commits de um período
git log --since="2024-01-01" --until="2024-12-31"

# Commits das últimas 2 semanas
git log --since="2 weeks ago"

Ver Diferenças

# Diferenças não preparadas (working directory vs staging)
git diff

# Diferenças preparadas (staging vs último commit)
git diff --staged

# Diferenças entre commits
git diff hash1 hash2

# Diferenças de arquivo específico
git diff nome-do-arquivo.txt

# Estatísticas das diferenças
git diff --stat

Gerenciamento de Arquivos

Ignorar Arquivos (.gitignore)

# Criar arquivo .gitignore
touch .gitignore

# Adicionar ao repositório
git add .gitignore
git commit -m "Adiciona .gitignore"

Exemplo de .gitignore:

# Dependências
node_modules/
vendor/

# Arquivos de ambiente
.env
.env.local

# Logs
*.log
logs/

# Sistema operacional
.DS_Store
Thumbs.db

# IDEs
.vscode/
.idea/
*.swp

# Build
dist/
build/
*.exe

Renomear Arquivos

# Renomear arquivo (Git rastreia a mudança)
git mv arquivo-antigo.txt arquivo-novo.txt

# Equivalente manual (não recomendado)
mv arquivo-antigo.txt arquivo-novo.txt
git add arquivo-novo.txt
git rm arquivo-antigo.txt

Mover Arquivos

# Mover arquivo para pasta
git mv arquivo.txt pasta/arquivo.txt

# Mover e renomear
git mv arquivo.txt nova-pasta/novo-nome.txt

Remover Arquivos

# Remover arquivo do repositório e do disco
git rm arquivo.txt

# Remover apenas do repositório (mantém no disco)
git rm --cached arquivo.txt

# Remover pasta recursivamente
git rm -r pasta/

# Forçar remoção
git rm -f arquivo.txt

Desfazendo Alterações

Descartar Modificações Locais

# Restaurar arquivo específico (desfaz mudanças não commitadas)
git restore nome-do-arquivo.txt

# Restaurar todos os arquivos
git restore .

# Comando antigo (ainda funciona)
git checkout -- nome-do-arquivo.txt

Desfazer Commits

Método 1: Reset (reescreve histórico)

# Desfazer último commit mantendo alterações no staging
git reset --soft HEAD~1

# Desfazer último commit mantendo alterações no working directory
git reset --mixed HEAD~1
# ou simplesmente
git reset HEAD~1

# Desfazer último commit descartando todas as alterações
git reset --hard HEAD~1

# Voltar para commit específico
git reset --hard hash-do-commit

⚠️ CUIDADO: git reset --hard descarta permanentemente as alterações.

Método 2: Revert (cria novo commit)

# Reverter último commit (cria novo commit)
git revert HEAD

# Reverter commit específico
git revert hash-do-commit

# Reverter múltiplos commits
git revert HEAD~3..HEAD

# Reverter sem criar commit automaticamente
git revert -n hash-do-commit

💡 Dica: Use revert quando o commit já foi enviado para repositório remoto. Use reset para commits locais.

Recuperar Arquivo de Commit Anterior

# Recuperar arquivo de commit específico
git checkout hash-do-commit -- nome-do-arquivo.txt

# Recuperar do commit anterior
git checkout HEAD~1 -- nome-do-arquivo.txt

# Comando moderno
git restore --source=hash-do-commit nome-do-arquivo.txt

Limpar Arquivos Não Rastreados

# Ver quais arquivos seriam removidos (dry-run)
git clean -n

# Remover arquivos não rastreados
git clean -f

# Remover arquivos e diretórios
git clean -fd

# Incluir arquivos ignorados
git clean -fdx

Boas Práticas

Mensagens de Commit

# ✅ Boas mensagens
git commit -m "Adiciona validação de email no formulário"
git commit -m "Corrige bug de autenticação no login"
git commit -m "Atualiza dependências do projeto"

# ❌ Mensagens ruins
git commit -m "ajustes"
git commit -m "fix"
git commit -m "atualizações"

Formato recomendado:

  • Use verbos no imperativo: "Adiciona", "Corrige", "Remove"
  • Seja específico e descritivo
  • Primeira linha com até 50 caracteres
  • Deixe linha em branco antes da descrição detalhada
  • Descrição detalhada com até 72 caracteres por linha

Commits Frequentes

  • Faça commits pequenos e frequentes
  • Cada commit deve representar uma mudança lógica
  • Não misture funcionalidades diferentes no mesmo commit

Antes de Commitar

# Sempre revise antes de commitar
git status
git diff
git diff --staged

# Certifique-se de estar no branch correto
git branch

.gitignore desde o Início

  • Crie .gitignore logo no início do projeto
  • Nunca commite arquivos sensíveis (senhas, tokens, chaves)
  • Não commite arquivos gerados automaticamente

Backup e Repositório Remoto

# Adicionar repositório remoto
git remote add origin https://github.com/usuario/repositorio.git

# Enviar commits para remoto
git push -u origin main

# Verificar remotos configurados
git remote -v

Comandos Úteis Adicionais

# Ver aliases configurados
git config --get-regexp alias

# Criar alias útil
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.unstage 'reset HEAD --'

# Ver quem modificou cada linha de um arquivo
git blame nome-do-arquivo.txt

# Buscar texto no histórico
git log -S "texto-procurado"

# Listar branches
git branch -a

# Ver tamanho do repositório
git count-objects -vH

Recursos Adicionais


Versão: 2.0
Última Atualização: 29 Dezembro 2025

About

Comandos Git para consulta rápida

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors