Qual é a diferença entre git reset –mixed, –soft e –hard?

Qual E A Diferenca Entre Git Reset Mixed Soft E Hard



No Git, cada commit está vinculado ao commit anterior, e o HEAD aponta para o commit mais recente no ramo de trabalho. O histórico de commits é armazenado como uma árvore de commits. No entanto, às vezes os desenvolvedores precisam modificar o histórico de confirmação. Para tanto, o “ $ git reset ” é usado para modificar o histórico do repositório Git e corrigir erros cometidos.

Este artigo explicará brevemente a diferença entre git reset –hard, –soft e –mixed.

Qual é a diferença entre git reset –mixed, –soft e –hard?

O Git fornece várias opções de redefinição. Com base em como eles lidam com os commits, todas as opções disponíveis são diferentes umas das outras. Todos eles modificam o histórico do Git e movem o HEAD de volta. Além disso, eles lidam com as mudanças de maneira diferente, como:







  • O ' -suave ” opção usada com o “ $ git reset ” para manter os arquivos e retornar as alterações de confirmação para o índice de preparação do Git.
  • $ git reset – misturado ” é usado para desfazer as alterações de confirmação e remover o arquivo do índice de preparação sem excluí-lo do diretório de trabalho.
  • O ' -duro ” com a opção “ $ git reset ” é usado para excluir todas as alterações e removê-las do diretório de trabalho local.

Vamos dar um exemplo para ver como o “ $ git reset ” O comando funciona com diferentes opções!



Etapa 1: vá para o repositório Git desejado

Primeiro, vá para o repositório Git desejado utilizando o botão “ cd ” comando:



$ cd 'C:\Ir \t is_repo'





Etapa 2: criar arquivo

Agora, execute o comando abaixo para criar um arquivo:

$ toque Arquivo4.txt



Etapa 3: adicionar arquivo ao índice de preparação

Use o ' git add ” para adicionar o arquivo recém-gerado ao índice de preparação:

$ git add Arquivo4.txt

Etapa 4: confirmar alterações

Em seguida, adicione todas as alterações ao repositório de trabalho executando o comando “ git commit ” comando:

$ git commit -m 'Arquivo4 adicionado'

Etapa 5: verifique o registro do Git

Em seguida, verifique o histórico de log do Git para ver os últimos commits que foram adicionados:

$ git log

Na saída abaixo, pode-se ver que todos os últimos commits adicionados são exibidos e o “ CABEÇA ” está apontando para o commit recente:

Observação: Para conferir melhor a posição de apontamento atual do HEAD, execute o comando “ git log ” junto com o “ -uma linha ' bandeira:

$ git log --conectados

A saída fornecida abaixo mostra a lista de hash SHA de confirmação com mensagens de confirmação:

Etapa 6: use o comando git reset –soft

Para reverter as alterações adicionadas do repositório Git para o índice de preparação, utilize o “ git reset ” junto com o “– suave ” e especifique a posição HEAD desejada onde é necessário mover o ponteiro:

$ git reset --suave CABEÇA ~ 1

Etapa 7: verifique o status do Git

Agora, verifique a posição de reversão do HEAD, verifique o status do repositório Git:

$ git status

Pode-se perceber que o “ git reset –suave ” comando retornou as alterações de confirmação para o índice de preparo do Git. Além disso, o “ Arquivo4.txt ” agora está no índice de preparação do Git e precisa ser confirmado:

Etapa 8: verifique o registro do Git

Para visualizar a posição atual do HEAD, execute o comando fornecido junto com o “ -uma linha ” opção:

$ git log --conectados

Aqui, o HEAD está apontando para o “ Arquivo3 ' comprometer-se:

Passo 9: Use git reset — Comando misto

Para desfazer as alterações confirmadas e remover os arquivos da área de preparação sem excluí-los do diretório de trabalho, execute o comando “ $ git reset – misturado ” juntamente com a posição HEAD necessária do commit:

$ git reset --misturado CABEÇA~ 1

Etapa 10: verifique o status do Git

Visualize as alterações recém-adicionadas verificando o status do repositório Git:

$ git status

Pode-se observar que as alterações de confirmação especificadas são removidas da área de preparação. No entanto, eles são colocados na área de trabalho:

Etapa 11: verifique o log do Git

Verifique o histórico do log de referência do repositório Git junto com o hash SHA:

$ git log --conectados

Passo 12: Use git reset — Comando rígido

Para remover alterações adicionadas do diretório de trabalho local do Git, execute o comando “ $ git reset –hard ” comando:

$ git reset --duro CABEÇA ~ 1

Etapa 13: Verifique o ponteiro HEAD invertido

Para verificar o ponteiro HEAD, volte para a posição especificada, execute o comando “ git log ” comando:

$ git log --conectados

A saída abaixo mostra que o HEAD está apontando para o “ Arquivo1 adicionado ' comprometer-se:

Etapa 14: verifique o status do Git

Para visualizar as alterações adicionadas, verifique o status do Git:

$ git status

Vê-se que não temos nenhuma pista e alterações pendentes de “ Arquivo2.txt ' Arquivo. Portanto, File2.txt foi removido completamente:

Etapa 15: verifique a lista de conteúdo do repositório

Para verificar a lista de conteúdo do repositório, execute o comando “ ls ” comando:

$ ls

Como você pode ver, o “ Arquivo2.txt ” arquivo não existe no diretório atual:

Explicamos a diferença entre as opções git reset –mixed, –soft e –hard.

Conclusão

O ' git reset ” é usado para redefinir as alterações, modificar o histórico do repositório Git e corrigir erros. O ' git reset –suave ” mantém os arquivos e retorna as alterações de confirmação para a área de preparação do Git. Em contraste, o “ git reset – misturado ” desfaça as alterações de confirmação e remova o arquivo do índice de preparação sem excluí-lo do diretório de trabalho. Para excluir todas as alterações e removê-las da área de trabalho do Git, o “ git reset –hard ” pode ser usado. Este artigo ilustrou a diferença entre git reset –mixed, –soft e –hard.