logo

Como git desfazer o último commit

Como engenheiro de software ou desenvolvedor web, podemos precisar enviar muitos commits para nosso repositório Git.

No entanto, existem alguns outros casos em que queremos enviar os arquivos que não serão enviados para nosso repositório Git. Antes de emitir qualquer commit, às vezes podemos desejar implementar algumas alterações adicionais.

Como efeito, precisamos desfazer o último commit através do nosso repositório Git. Veremos como podemos desfazer o último commit neste tópico.

Desfazer o último commit do Git junto com uma redefinição

Podemos desfazer facilmente o último commit do git executando o comando, ou seja, 'git reset' junto com uma opção, ou seja, '-macio' isso protegerá todas as alterações feitas em nossos arquivos. Temos que descrever o commit para desfazer que é 'HEAD~1'.

O último commit do git será excluído do nosso repositório Git.

 $ git reset --soft HEAD~1 

Nesta notação,

'CABEÇA~1': Isso significa que desejamos redefinir este HEAD para um único commit antes do histórico do log.

meulivecriclet
 $ git log --oneline 3fad532 Last commit (HEAD) 3bnaj03 Commit before HEAD (HEAD~1) Vcn3ed5 Two commits before HEAD (HEAD~2) 

Qual será o efeito do comando acima?

O comando, ou seja, 'git reset' pode ser visto como um comando, ou seja, oposto ao 'git adicionar' , essencialmente inserindo arquivos no índice do Git.

Se descrever a opção de '-macio' , o Git não alterará os arquivos no índice ou no diretório de execução.

Por exemplo, incluímos dois arquivos em nosso commit recente, embora desejemos implementar algumas alterações neste arquivo.

data de utilidade java
 $ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 Second commit *7083e29 Initial repository commit 

Como resultado, aplicaremos 'git reset' junto com a opção de '-macio' para desfazer o último commit e também implementar algumas alterações adicionais.

 $ git reset --soft HEAD~1 $ git status 

Sobre o mestre da filial

Nosso branch é master/origin forward pelo commit 1 (aplique 'git push' para publicar nossos commits locais).

Modificações a serem confirmadas:

 (apply 'git restore --staged …' to unstage) 

novo arquivo: arquivo1

 $ git log --oneline --graph *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit 

Como podemos ver, o arquivo ainda está no índice desfazendo o último commit (modificações a serem commitadas) embora o commit tenha sido deletado.

Fizemos o último commit em nosso repositório com sucesso.

Confirmação do Git de reinicialização forçada

Podemos considerar na seção acima que podemos facilmente desfaça o último commit e preserve as modificações feito em qualquer arquivo dentro do índice. Mas em algumas situações, desejamos simplesmente remover as alterações e commits feitos em qualquer arquivo.

É um objetivo de uma opção, ou seja, '-duro' .

Para desfazer o último commit e remover todas as modificações no índice e diretório, execute um comando, ou seja, 'git reset' junto com a opção, ou seja, '-duro' e descreva um commit antes do comando HEAD ('CABEÇA~1') .

 $ git reset --hard HEAD~1 

Cada commit e modificação serão removidos do índice e do diretório após usar o '--duro' comando. Portanto, devemos ter cuidado.

Por exemplo, enviamos qualquer novo arquivo chamado 'file1' para nosso repositório Git.

 $ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit 

Agora, suponha que desejamos desfazer o último commit e remover todas as alterações.

 $ git reset --hard HEAD~1 

Agora, HEAD está em 90f8bb1 Segundo commit

Agora, vamos verificar o estado do nosso repositório git.

converter string em char java
 $ git status 

Sobre o mestre da filial

Nosso branch é contemporâneo ao master/origin (aplique o comando 'git push' para publicar nossos commits locais).

sorriso mais lindo do mundo

Agora, não há nada para confirmar e a árvore de trabalho está limpa.

Comprometimento Git de redefinição mista

Mantenha a modificação em nosso diretório de trabalho, NÃO dentro do índice. Temos que aplicar o comando, ou seja ., 'git reset' junto com a opção, ou seja, '-misturado' . Após este comando, temos que anexar o 'HEAD~1' simplesmente ao último commit.

 $ git reset --mixed HEAD~1 

Por exemplo, incluímos qualquer arquivo chamado 'file1' em qualquer commit que precisamos desfazer.

 $ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit 

Simplesmente, executamos o comando, ou seja, 'git reset' junto com a opção, ou seja, '-misturado' para desfazer o último commit.

Como resultado, o '-misturado' comando é um 'misturar' entre o hard e o soft reset, daí o seu nome.

Sobre o mestre da filial

Nosso branch é master/origin forward pelo commit 1 (aplique 'git push' para publicar nossos commits locais).

Arquivos não rastreados: (aplique 'git add…' para adicionar dentro do que será confirmado)

 file1 

Nada incluído para confirmação, mas os arquivos não rastreados estão presentes (aplique 'git track' para rastreamento).

Portanto, detectamos outra prática para reverter o último commit preservando as modificações feitas nos arquivos.

Desfazer o último commit junto com a reversão

Aplique o comando, ou seja, 'git reverter' e descrever um commit a ser revertido, ou seja, 'CABEÇA' ao commit do histórico para reverter o último commit do Git.

 $ git revert HEAD 

O comando 'git revert' é diferente em comparação com o comando 'git reset' porque pode registrar qualquer novo commit junto com algumas modificações definidas pela degeneração do último commit.

lista jlist

Podemos descrever 'HEAD~1' com o comando 'git reset' porque este comando de redefinição definirá qualquer novo local HEAD enquanto degenera o commit descrito.

Como resultado, iremos submeter as modificações novamente em alguns arquivos para reversão e nos comprometeremos a não serem executadas. Comprometemos qualquer novo arquivo para nosso repositório Git, mas desejamos degenerar este commit.

 $ git log --oneline -graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit 

Se executar o comando 'git revert', o Git abrirá nosso editor de texto para submeter as modificações automaticamente.

Como git desfazer o último commit

Uma nova mensagem será exibida junto com um novo hash de commit quando terminarmos de executar uma mensagem de commit.

 [master 2d40a2c] Revert 'Added a new file named as file1' 1 file changed, 1 deletion(-) delete mode 100644 file1 

Se tivermos que verificar nosso histórico do Git novamente, podemos notar um novo commit adicionado para desfazer o último commit através do nosso repositório.

 $ git log --oneline --graph *2d40a2c (HEAD -> master) Revert 'Added a new file named file1' *1fa26e9 Added a new file named as file1 *ee8b133 Second commit *a3bdedf Initial commit