Neste guia, exploramos comandos essenciais do Git para gerenciar repositórios e fluxos de trabalho de desenvolivmento. Os exemplos utilizam nomes genéricos como nome-da-branch para ilustrar a aplicação.
Clonando um Repositório
git clone https://exemplo.com/repositorio.git
Criando e Enviando uma Nova Branch
git branch feature-x
git push origin feature-x
Listando e Alternando Branches
git branch -a
git fetch
git checkout -t origin/develop
git branch
git checkout feature-x
Renomeando uma Branch
git branch -m nome-antigo nome-novo
git push -d origin nome-antigo
git push origin nome-novo
git branch --set-upstream-to origin/nome-novo
Desvinculando uma Branch Local do Remoto
# Certifique-se de estar na branch local a ser desvinculada
git branch --unset-upstream
Vinculadno uma Branch Local ao Remoto
git branch --set-upstream-to=origin/branch-remota branch-local
Realizando um Merge entre Branches
# Exemplo: mesclando develop em master
git checkout develop
git pull
git checkout master
git pull
git merge develop
git push origin master
Abortando um Merge em Andamento
git merge --abort
Reaplicando Commits com Rebase
# Transferir commits de uma branch para outra
git rebase branch-destino branch-origem
# Ou alternativamente:
git switch branch-origem
git rebase branch-destino
Removendo Branches
git branch -d nome-da-branch # Remove localmente
git push -d origin nome-da-branch # Remove remotamente
Preparando e Enviando Alterações
git pull
git add .
git commit -m "Descrição das mudanças"
git push
Stash: Ocultando Alterações Temporariamente
git stash
Recuperando Alterações do Stash
# Aplicar sem remover do stash
git stash apply
git stash drop # Para remover manualmente
# Ou aplicar e remover automaticamente
git stash pop
Revertendo para uma Versão Anterior
# Para a versão imediatamente anterior
git reset --soft HEAD^ # Mantém as alterações staged
# Ou com --hard para descartar todas as alterações
git reset --hard HEAD^
# Enviar a reversão ao repositório remoto (cuidado com --force)
git push -f
Revertendo para um Commit Específico
# Visualizar o histórico para obter o hash do commit
git log -n 5
# Reverter mantendo alterações staged
git reset --soft <hash-do-commit>
# Ou reverter completamente
git reset --hard <hash-do-commit>
# Forçar a atualização do remoto
git push -f
Revertendo um Commit Específico com Revert
# Reverter um único commit
git revert -n <hash-do-commit>
git commit -m "Revertendo alteração específica"
git push
Resolvendo Conflitos entre Local e Remoto
git stash
git pull origin branch-atual
git stash pop
# Resolva conflitos, depois:
git add .
git commit -m "Resolução de conflitos"
git push
Desfazendo um Commit (mantendo staged)
git reset --soft HEAD~1
Desfazendo um Commit e o Staging
git reset --hard HEAD^
Cherry-Pick: Selecionando Commits de Outra Branch
git checkout branch-destino
git cherry-pick <hash-do-commit>
Gerenciando Submódulos
git clone --recursive https://exemplo.com/repositorio.git
git submodule add https://exemplo.com/submodulo.git caminho/submodulo
git submodule init
git submodule update
git submodule foreach git checkout develop -f
git submodule foreach git pull
Limpando a Área de Staging
git clean -f
Removendo o Vínculo com o Repositório Remoto
git remote remove origin
Adicionando um Novo Repositório Remoto
git remote add origin https://novo-repositorio.git
Erro durante Merge: Reset Suave Não Permitido
git reset --merge