20 Truques de Linha de Comando do Git que Todo Desenvolvedor Deveria Saber

O Git é uma ferramenta essencial de controle de versão para desenvolvedores. Embora ferramentas GUI possam simplificar algumas tarefas, dominar a linha de comando do Git oferece um controle mais profundo, flexibilidade e velocidade. Aqui estão 20 truques de linha de comando do Git que todo desenvolvedor deve conhecer para otimizar seu fluxo de trabalho.

Resetar um Arquivo para o Último Commit
Descarte as alterações locais em um arquivo específico.

git checkout -- path/to/file

Responsabilizar uma Linha de Código
Descubra quem escreveu uma linha específica em um arquivo.

git blame path/to/file

Buscar Apenas Metadados
Quer evitar baixar todo o repositório?

git fetch --dry-run

Isso permite ver o que seria buscado sem realmente baixar os dados.

Reverter um Commit Já Enviado
Desfaça as alterações de um commit específico sem alterar o histórico.

git revert <commit-hash>

Editar o .gitignore Após Fazer Commit
Se esqueceu de ignorar certos arquivos, atualize o .gitignore.

echo "node_modules/" >> .gitignore
git rm -r --cached node_modules/
git commit -m "Atualizar .gitignore"

Visualizar o Arquivo em um Commit Específico
Veja o estado de um arquivo em um commit específico.

git show <commit-hash>:path/to/file

Combinar Commits com Rebase Interativo
Combine vários commits em um só.

git rebase -i HEAD~n  # Substitua 'n' pelo número de commits

Rastrear um Branch Upstream
Mantenha seu branch local em sincronização com um branch remoto.

git branch --set-upstream-to=origin/main

Limpar Arquivos e Diretórios Não Rastreáveis
Remova rapidamente arquivos indesejados que não são rastreados pelo Git.

git clean -fd

💡 Use -n para uma simulação antes de remover de fato.

Listar Todos os Branches (Locais e Remotos)
Veja quais branches estão disponíveis.

git branch -a

Cherry-Pick de Commits Específicos
Quer trazer um commit específico de outro branch?

git cherry-pick <commit-hash>

Rebase para um Histórico de Commits Limpo
O rebase reescreve o histórico de commits para maior clareza.

git rebase -i HEAD~3

Isso permite editar, combinar ou reordenar seus últimos 3 commits.

Encontrar um Bug com Bisect
Use git bisect para encontrar o commit que introduziu um bug.

git bisect start
git bisect bad  # O commit atual está com problema
git bisect good <commit-hash>  # Um commit conhecido como bom

O Git percorrerá o histórico de commits para identificar o commit problemático.

Verificar Diferenças nas Alterações em Estágio
Use git diff para comparar arquivos em diferentes estágios.

git diff --staged

Isso mostra as alterações que estão em estágio, mas ainda não foram commitadas.

Alterar o Autor do Commit
Mude o autor do último commit.

git commit --amend --author="Novo Autor <novautor@exemplo.com>"

Visualizar o Histórico de Commits Graficamente
Visualizar o histórico de commits facilita entender o estado do projeto.

git log --graph --oneline --all

Guardar Alterações Não Cometidas
Precisa mudar rapidamente de branch sem fazer commit?

git stash

💡 Recupere o stash mais tarde com:

git stash pop

Emendar o Último Commit
Esqueceu de incluir uma alteração ou deseja atualizar a mensagem do commit?

git add .
git commit --amend -m "Mensagem de commit atualizada"

Isso atualiza o commit anterior sem criar um novo.

Desfazer o Último Commit (sem perder alterações)
Se você cometeu um erro no último commit, pode desfazê-lo.

git reset --soft HEAD~1

Isso deixa suas alterações em estágio, permitindo emendar o commit ou corrigir o problema.

Configurar Configuração Global
Garanta que seus commits estejam vinculados à identidade correta.

git config --global user.name "Seu Nome"
git config --global user.email "voce@exemplo.com"

💡 Dica: Use --local em vez de --global para definir configurações específicas do projeto.

Esses 20 truques de linha de comando do Git podem tornar seu processo de desenvolvimento mais suave, seja você trabalhando sozinho ou em equipe. Embora ferramentas GUI ofereçam conveniência, dominar a linha de comando do Git proporciona mais controle sobre seus fluxos de trabalho. Experimente esses comandos e aprimore suas habilidades no Git!