Git desfaz várias posturas de commits mesclados

#Git desfaz várias posturas de commits mesclados

Mesclar ramificações é uma operação comum no Git, mas às vezes o commit errado pode ser mesclado acidentalmente na ramificação principal. Neste momento, você precisa desfazer o commit mesclado e restaurar o estado correto. Este artigo apresentará como desfazer o commit mesclado no Git, independentemente de o registro do commit ser o mais recente ou um intermediário.

Desfazer o último commit mesclado

Se você quiser desfazer o último merge commit, você pode usar git reverto comando para criar um novo commit que desfaça as alterações erradas.

  1. Primeiro, use git logo comando para visualizar o histórico de confirmação para localizar a confirmação de mesclagem mais recente.

$ git log
commit c3d2e9a4e2a1e285ff4d8f06e01d4e3f19b532ea (HEAD -> master)
Author: Hanmeimei <[email protected]>
Date:   Fri Jun 30 15:26:43 2023 +0800

    Incorrect merge commit

commit 3e5fb8a7b631eb6492ef32e28a813084d4d3de2b
Author: Lilei <[email protected]>
Date:   Thu Jun 29 18:20:56 2023 +0800

    Correct commit

...

No exemplo acima, você pode ver o último commit de mesclagem com bugs ( Incorrect merge commit).

  1. Use git reverto comando para desfazer o merge commit e criar um novo commit para reverter para o estado correto.

$ git revert c3d2e9a4e2a1e285ff4d8f06e01d4e3f19b532ea

O Git criará automaticamente um novo commit, desfazendo o merge commit errado.

  1. Valide o novo histórico de confirmação com git logo comando ou para confirmar que as alterações incorretas foram desfeitas.git show

$ git log
commit b254d0f063b4ab4e7b78fb42015e0c55e0e98712 (HEAD -> master)
Author: Hanmeimei <[email protected]>
Date:   Fri Jun 30 15:46:28 2023 +0800

    Revert "Incorrect merge commit"

    This reverts commit c3d2e9a4e2a1e285ff4d8f06e01d4e3f19b532ea.

commit 3e5fb8a7b631eb6492ef32e28a813084d4d3de2b
Author: Lilei <[email protected]>
Date:   Thu Jun 29 18:20:56 2023 +0800

    Correct commit

...

Aqui você pode ver que um novo commit ( Revert "Incorrect merge commit") foi criado, o que desfaz o último commit de mesclagem incorreto.

Desfazer os últimos commits múltiplos mesclados

Se quiser desfazer vários commits da última mesclagem, você pode usar git reseto comando para reverter para um commit. Aqui estão os passos:

  1. Primeiro, use git logo comando para visualizar o histórico de confirmação e encontrar o valor de hash a ser revertido.

$ git log
commit c5b890eee2edf9a353ec6bba0543e41d2529a8f8 (HEAD -> master)
Author: Hanmeimei <[email protected]>
Date:   Mon Jul 3 15:12:10 2023 +0800

    Incorrect merge commit

commit 82bcf43083a4dc8c87091ebde4dd5374f0c6e274
Author: Hanmeimei <[email protected]>
Date:   Mon Jul 3 15:11:54 2023 +0800

    Incorrect merge commit2
    
commit 60a52b00d0ee2703156231e209e8aad115919aee
Author: Hanmeimei <[email protected]>
Date:   Mon Jun 26 06:32:35 2023 +0000

    Correct commit

...

Uma reversão para ( ) é necessária aqui Correct commit.

  1. Use git reset o comando para desfazer o merge commit e criar um novo commit para reverter para o estado correto.

$ git reset --soft 60a52b00d0ee2703156231e209e8aad115919aee // 暂存区
$ git reset --hard 60a52b00d0ee2703156231e209e8aad115919aee // HEAD 指向此次提交记录
$ git push origin HEAD --force // 强制推送远端

Nota: As modificações após este envio não são reservadas e git statusnão há registro de visualização do espaço de trabalho.

  1. Por fim, verifique o histórico de confirmação com git logo comando ou git showpara confirmar que as alterações incorretas foram desfeitas.

$ git log
commit 60a52b00d0ee2703156231e209e8aad115919aee (HEAD -> master)
Author: Hanmeimei <[email protected]>
Date:   Mon Jun 26 06:32:35 2023 +0000

    Correct commit

...

Em caso de exclusão acidental, os seguintes métodos podem ser usados ​​para recuperar:

$ git reset --hard 82bcf43083a4dc8c87091ebde4dd5374f0c6e274 // 误删的哈希值

 HEAD is now at 82bcf4308 feat: Incorrect merge commit2
 
$ git push origin HEAD --force // 强制推送远端

Desfazer uma confirmação de mesclagem intermediária

Se você deseja desfazer um envio de mesclagem no meio, pode usar git reverto comando e especificar o valor de hash de confirmação a ser desfeito.

  1. Primeiro, use git logo comando para visualizar o histórico de confirmação e localizar a confirmação de mesclagem intermediária que deseja desfazer.

$ git log
commit 3e5fb8a7b631eb6492ef32e28a813084d4d3de2b (HEAD -> master)
Author: Lilei <[email protected]>
Date:   Wed Jun 21 12:00:00 2023 +0000

    Correct commit
    
commit a1b2c3d4e5f6a7b8c9d0e1f2g3h4i5j6k7l8m9n0
Author: Hanmeimei <[email protected]>
Date:   Fri Jun 18 12:00:00 2023 +0000

    Incorrect merge commit
    
...

Um commit ( ) de mesclagem incorreto intermediário pode ser visto aqui Incorrect merge commit.

  1. Em seguida, use git reverto comando para desfazer o merge commit e criar um novo commit para reverter para o estado correto.

$ git revert a1b2c3d4e5f6a7b8c9d0e1f2g3h4i5j6k7l8m9n0

O Git criará automaticamente um novo commit, desfazendo o merge commit errado.

  1. Por fim, use o comando git logou git showpara verificar o novo histórico de confirmação e confirme se as alterações incorretas foram desfeitas.

$ git log
commit b254d0f063b4ab4e7b78fb42015e0c55e0e98712 (HEAD -> master)
Author: Hanmeimei <[email protected]>
Date:   Mon Jun 28 12:10:00 2023 +0000

    Revert "Incorrect merge commit"

    This reverts commit a1b2c3d4e5f6a7b8c9d0e1f2g3h4i5j6k7l8m9n0.

commit 3e5fb8a7b631eb6492ef32e28a813084d4d3de2b
Author: Lilei <[email protected]>
Date:   Wed Jun 21 12:00:00 2023 +0000

    Correct commit
    
commit a1b2c3d4e5f6a7b8c9d0e1f2g3h4i5j6k7l8m9n0
Author: Hanmeimei <[email protected]>
Date:   Fri Jun 18 12:00:00 2023 +0000

    Incorrect merge commit

...

Você pode ver que o envio anterior ainda permanecerá em git log, e esta revogação será usada como um novo envio ( Revert "Incorrect merge commit").

Perceber

Certifique-se sempre de entender as consequências antes de executar uma operação de desfazer e crie backups ou salve dados importantes antes de fazer qualquer alteração.

- FIM -

Sobre Qi Wu Troupe

Qi Wu Troupe é a maior equipe de front-end do 360 Group e participa do trabalho dos membros do W3C e ECMA (TC39) em nome do grupo. Qi Wu Troupe atribui grande importância ao treinamento de talentos. Existem várias direções de desenvolvimento, como engenheiros, palestrantes, tradutores, pessoas de interface de negócios e líderes de equipe para os funcionários escolherem e complementados pelo fornecimento de treinamento técnico, profissional, geral e de liderança correspondente .claro. Qi Dance Troupe dá as boas-vindas a todos os tipos de talentos excepcionais para prestar atenção e se juntar ao Qi Dance Troupe com uma atitude aberta e em busca de talentos.

674c30eac365c8a69f26f440bb362217.png

Acho que você gosta

Origin blog.csdn.net/qiwoo_weekly/article/details/131671808
Recomendado
Clasificación