git init
Inicializa um repositório no diretório atual
Exemplo prático
git init # ou com um nome
git init myproject
referência para desenvolvimento
Consulte comandos Git, pesquise exemplos, copie com um clique e imprima em PDF.
42 comandos visíveis
git init
Inicializa um repositório no diretório atual
git init # ou com um nome
git init myproject
git clone <url>
Clona um repositório remoto para o computador
git clone https://github.com/user/repo.git
# em um diretório específico
git clone <url> myfolder
# apenas o último commit
git clone --depth 1 <url>
git remote add origin <url>
Associa um repositório local a um remoto
git remote add origin https://github.com/user/repo.git
git status
Mostra arquivos modificados, preparados para commit e não rastreados
git status
git status -s # saída compacta
git add <file>
Adiciona arquivos à área de preparação
git add index.html
git add . # todas as alterações
git add -p # interativo, trecho por trecho
git commit -m "<msg>"
Cria um commit com as alterações preparadas e uma mensagem
git commit -m "feat: add login page"
git commit -am "fix: typo" # prepara e faz commit das alterações em arquivos rastreados
git commit --amend
Altera a mensagem ou o conteúdo do último commit
Substitui o último commit. Combine com a equipe antes de alterar um commit já publicado.
git commit --amend -m "new message"
# adiciona arquivos esquecidos
git add file.txt && git commit --amend --no-edit
git rm --cached <file>
Remove um arquivo do índice do Git; o arquivo local permanece. Faça o commit para encerrar o rastreamento.
O próximo commit remove o arquivo do repositório; a cópia local permanece.
git rm --cached secret.env
git stash
Guarda temporariamente alterações que ainda não viraram commit
git stash
git stash push -m "wip: login form"
git stash list
Lista todos os stashes
git stash list
git stash pop
Aplica um stash e só o remove se a aplicação for bem-sucedida
Confira os conflitos antes de continuar. O Git mantém o stash quando a aplicação falha.
git stash pop
git stash pop stash@{2}
git stash apply [stash@{n}]
Aplica um stash sem removê-lo
git stash apply stash@{1}
git stash drop [stash@{n}]
Exclui um stash específico
Exclui o stash selecionado. A recuperação não é garantida.
git stash drop stash@{0}
git stash branch <branch>
Cria uma branch a partir de um stash e aplica as alterações
git stash branch feature/login stash@{0}
git branch
Lista branches locais (-a inclui as remotas)
git branch
git branch -a
git switch -c <name>
Cria uma branch e muda para ela
git switch -c feature/auth
# sintaxe antiga
git checkout -b feature/auth
git switch <branch>
Muda para uma branch existente
git switch main
git switch - # branch anterior
git merge <branch>
Integra uma branch à branch atual
git switch main
git merge feature/auth
git merge --no-ff feature/auth # preserva commits de merge
git rebase <branch>
Reescreve o histórico da branch sobre uma nova base
Reescreve o histórico de commits. Combine com a equipe antes de fazer rebase de uma branch compartilhada.
git switch feature/auth
git rebase main
git rebase -i HEAD~3 # interativo: combina ou reordena commits
git cherry-pick <hash>
Aplica um commit específico à branch atual
git cherry-pick a3f1c2e
git cherry-pick a3f1c2e^..b7d9e0f # intervalo de commits
git branch -d <branch>
Exclui uma branch apenas se ela já tiver sido integrada
git branch -d feature/auth
git branch -D feature/auth # força a exclusão
git remote -v
Lista todos os remotos e suas URLs
git remote -v
git fetch [remote]
Baixa atualizações sem integrá-las
git fetch origin
git fetch --all
git pull
git pull --rebase # com rebase
git push <remote> <branch>
Envia commits para o remoto
git push origin main
git push -u origin feature/auth # define a branch remota de acompanhamento
git push --force-with-lease
Push forçado com proteção que falha se o remoto divergir do estado esperado
Reescreve o histórico remoto. Confira a branch e o estado esperado do remoto antes do push.
git push --force-with-lease
git log --oneline --graph
Histórico compacto com gráfico das branches
git log --oneline --graph --decorate
git log -5 --oneline # últimos 5 commits
git log -S "<string>"
Encontra commits que adicionam ou removem uma string
git log -S "apiKey" --oneline
git blame <file>
Mostra quem alterou cada linha do arquivo por último
git blame src/main.py
git blame -L 10,20 src/main.py
git reflog
Histórico de movimentações do HEAD
git reflog
# recupera um commit perdido
git checkout HEAD@{2}
git restore <file>
Descarta alterações locais que não estão na área de preparação
Descarta alterações não preparadas no arquivo selecionado. O Git pode não conseguir recuperá-las.
git restore index.html
git restore . # todos os arquivos
git restore --staged <file>
Retira alterações da área de preparação, mantendo as edições
git restore --staged secret.env
git reset HEAD~1
Desfaz o último commit, mantendo as alterações
O reset mixed padrão mantém os arquivos de trabalho, mas limpa a área de preparação. --hard também descarta alterações em arquivos rastreados.
git reset --soft HEAD~1 # mantém as alterações preparadas
git reset HEAD~1 # limpa a preparação e mantém os arquivos
git reset --hard HEAD~1 # DESTRÓI alterações locais
git revert <hash>
Cria um commit que reverte outro sem reescrever o histórico remoto
git revert a3f1c2e --no-edit
git clean -fd
Exclui arquivos e diretórios não rastreados, sem recuperação garantida
Exclui permanentemente arquivos e diretórios não rastreados. Confira primeiro com git clean -nd.
git clean -fdn # confira antes de executar
git clean -fd
git diff
Alterações ainda não preparadas para commit
git diff
git diff src/main.py
git diff --staged
Alterações preparadas para commit
git diff --staged
git diff <branch1> <branch2>
Compara duas branches
git diff main feature/auth
git diff --name-only main feature/auth
git config --global user.name "<name>"
Define o nome global do usuário
git config --global user.name "Enzo"
git config --global user.email "<email>"
Define o e-mail global
git config --global user.email "enzo@example.com"
git config --global alias.<name> "<cmd>"
Cria um alias para um comando
# git lg = histórico gráfico
git config --global alias.lg "log --oneline --graph --decorate"
git config --list
Mostra a configuração ativa
git config --list --show-origin
Use git restore --staged <file>. Para parar de rastrear um arquivo mantendo a cópia local, use git rm --cached <file> e faça o commit da remoção.
Use Imprimir PDF. A versão para impressão inclui todos os comandos e exemplos práticos, inclusive as seções ocultas por uma pesquisa.
Sim. Sirva os arquivos estáticos com um servidor HTTP local. Pesquisa, filtros e cópia funcionam no navegador; o testador Regex precisa de um contexto HTTP que permita workers.