Qual é a diferença entre o git redefinido -mixed, -Soft e -Hard?

Qual é a diferença entre o git redefinido -mixed, -Soft e -Hard?
No Git, todo comprometimento está ligado ao comprometimento anterior, e a cabeça aponta para o commit mais recente no ramo de trabalho. A história do commit é armazenada como uma árvore de comérteis. No entanto, às vezes os desenvolvedores precisam modificar o histórico de compromissos. Para esse fim, o “$ git reset”O comando é usado para modificar a história do repositório Git e corrigir erros que foram cometidos.

Este artigo explicará brevemente a diferença entre a redefinição do git -Hard, -Soft e -Mixed.

Qual é a diferença entre o git redefinido -mixed, -Soft e -Hard?

O Git fornece várias opções de redefinição. Com base em como eles lidam com os compromissos, todas as opções disponíveis são diferentes uma da outra. Todos eles modificam o histórico do git e movem a cabeça para trás. Além disso, eles lidam com as mudanças de maneira diferente, como:

  • O "-macio”Opção usada com a“$ git reset”Comando para manter os arquivos e retornar as alterações de confirmação no índice de estadiamento Git.
  • ““$ git reset -Mixed”É usado para desfazer as alterações de confirmação e remover o arquivo do índice de estadiamento sem excluí -lo do diretório de trabalho.
  • O "-duro"Opção com a"$ git reset”O comando é 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”Comando funciona com opções diferentes!

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

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

$ CD "C: \ git \ test_repo"

Etapa 2: Criar arquivo

Agora, execute o comando abaixo para criar um arquivo:

$ touch file4.TXT

Etapa 3: Adicionar arquivo ao índice de estadiamento

Use o "git add”Comando para adicionar o arquivo recém -gerado ao índice de estadiamento:

$ git add file4.TXT

Etapa 4: Mudanças de compromisso

Em seguida, adicione todas as alterações ao repositório de trabalho executando o “Git Commit”Comando:

$ git commit -m "file4 adicionado"

Etapa 5: Verifique o Git Log

Em seguida, verifique o histórico de log do Git para visualizar os mais recentes começos que foram adicionados:

$ git log

Na saída abaixo, pode -se observar que todas as últimas confirmações adicionadas são exibidas e o ““CABEÇA”Está apontando para o compromisso recente:

Observação: Para conferir a posição atual da cabeça da cabeça de uma maneira melhor, execute o “log git”Comando junto com o“-uma linha" bandeira:

$ git log --oneeline

Abaixo, a saída mostrada mostra a lista de commit sha hash com mensagens de confirmação:

Etapa 6: use o comando git reinicialize -Soft

Para reverter as mudanças adicionadas do repositório Git para o índice de estadiamento, utilize o “Redefinição do Git”Comando junto com o“-macio”Opção e especifique a posição desejada da cabeça, onde é necessário mover o ponteiro:

$ git Reinicia -cabeça macia ~ 1

Etapa 7: Verifique o status Git

Agora, verifique a posição revertida da cabeça Verifique o status do repositório Git:

$ git status

Pode -se ver que o “Redefinição Git -Soft”O comando retornou as mudanças de confirmação no índice de estadiamento Git. Além disso, o “Arquivo4.TXT”Agora, o arquivo está no índice de estadiamento Git e precisa ser comprometido:

Etapa 8: Verifique o Git Log

Para ver a posição atual da cabeça, execute o comando dado junto com o “-uma linha”Opção:

$ git log --oneeline

Aqui, a cabeça está apontando para o “Arquivo3" comprometer-se:

Etapa 9: Use o Git Reset - Comando Misto

Para desfazer alterações comprometidas e remover os arquivos da área de estadiamento sem excluir delas do diretório de trabalho, execute o “$ git reset -Mixed”Comando juntamente com a posição de cabeça necessária do Commit:

$ git reset -cabeça misturada ~ 1

Etapa 10: Verifique o status Git

Veja 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 estadiamento. No entanto, eles são colocados na área de trabalho:

Etapa 11: Verifique o Git Log

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

$ git log --oneeline

Etapa 12: Use Redefinição Git - Comando Hard

Para remover alterações adicionais do diretório de trabalho local do Git, execute o “$ git reset -Hard”Comando:

$ git Reinicia -Cabeça difícil ~ 1

Etapa 13: Verifique o ponteiro da cabeça revertida

Para verificar o ponteiro da cabeça, reverta para a posição especificada, execute o “log git”Comando:

$ git log --oneeline

Abaixo da saída mostra que a cabeça está apontando para o “File1 adicionado" comprometer-se:

Etapa 14: Verifique o status Git

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

$ git status

Pode -se observar que não temos nenhuma trilha e alterações pendentes de “File2.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 “ls”Comando:

$ ls

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

Explicamos a diferença entre as opções de redefinição do git, -Soft e -Hard.

Conclusão

O "Redefinição do Git”O comando é usado para redefinir as alterações, modificar a história do repositório Git e corrigir erros. O "Redefinição Git -Soft”O comando mantém os arquivos e retorna as alterações de compromisso na área de estadiamento Git. Por outro lado, o “Redefinição do Git -Mixed”O comando desfazer as alterações de confirmação e remova o arquivo do índice de estadiamento sem excluí -lo do diretório de trabalho. Para excluir todas as mudanças e removê -las da área de trabalho do Git, o “Redefinição Git -Hard”O comando pode ser usado. Este artigo ilustrou a diferença entre o git redefinir -mixed, -Soft e -Hard.