Redefinir HEAD no Git
Git nos ajuda em muitos aspectos ao trabalhar em repositórios compartilhados.
Podemos realizar muitas funções usando Git, como podemos criar um novo branch, fundir um branch, remover um branch, conforme nossos requisitos. Essas ações podem ser realizadas por meio de vários comandos Git.
O comando git reset
é um recurso composto e de várias origens para desfazer as alterações. Este comando pode ser usado com três opções principais: --soft
, --mixed
, --hard
.
Esses três argumentos correspondem ao mecanismo de gerenciamento do Git chamado The Commit Tree (HEAD
).
O HEAD
aponta o último commit quando o branch de checkout Git é aplicado. Além disso, também podemos dizer que Git HEAD
aponta para o último commit do branch atual.
Quando verificamos um branch ou fazemos um novo branch, Git HEAD
transfere o último commit para nosso branch local. Mais precisamente, HEAD
é um ponteiro que sempre aponta para o commit atual, e pode ou às vezes não pertencer ao branch atual.
Git Head Reset
Quando salvamos nossas alterações no repositório desejado, devemos estar relaxados, pois usamos o comando git reset
para retornar às alterações que foram feitas, ele fará com que nosso branch atual volte ao seu lugar original onde estava antes do comando correu.
A opção HEAD
libera o novo branch. Podemos dizer que o que git reset-hard HEAD
pode fazer é destruir todas as alterações que fizemos e que não foram confirmadas.
O comando git reset
pode ser usado em combinação com outros comandos:
- Transfere para onde aponta o ramal
HEAD
. - Para fazer com que pareça um objeto de árvore.
- Para se parecer com a pasta de trabalho atual.
E, existem duas categorias diferentes de git reset
.
Git Head Reset --soft
Este comando Git irá reiniciar o HEAD
. Mas nosso índice e diretório de trabalho não serão afetados de forma alguma.
Podemos usar a opção de comando reset do Git para redefinir o chefe de um branch local:
git reset --soft
Git Head Reset --mixed
O comando misto git reset
mudará a localização do cabeçalho para o commit especificado e, além disso, apagará as mudanças da área de teste. Este é um exemplo de como desfazer as alterações.
Portanto, se executarmos o comando Git reset HEAD, ele moverá o HEAD
de volta para o primeiro commit pai novamente. A sintaxe para a situação discutida acima é a seguinte:
git reset --mixed or $ git reset
Git Head Reset --hard
Este comando pode ser um obstáculo para nós. Só pode ser usado se soubermos exatamente como usá-lo.
Quando usamos git reset-hard HEAD
para restaurar para o último commit torna-se um problema para nós. Felizmente, nós desenvolvedores temos uma solução melhor para sua correção.
Observe que git reset --hard
é um comando ameaçador. Ele pode destruir todas as nossas modificações não confirmadas. Devemos verificar primeiro e ter certeza de que a saída de status Git está limpa antes de lidar com isso.
Este comando removerá os commits armazenados no índice se quisermos remover todos os commits no índice e na área de teste (precisamos desfazer nosso último commit e o último commit antes disso). Podemos usar o comando reset Git com a opção --hard
:
git reset --hard HEAD~2
Este comando removerá qualquer confirmação do índice e da área de teste. Também removerá o commit do histórico.
Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.
LinkedIn