Como usar o git reset para desfazer commits em branchs errados

Neste tutorial, vamos simular uma situação em que esquecemos de mudar de branch e fizemos commit das alterações no branch errado (main) em vez do branch correto (frontend). Vamos usar três arquivos: app.py, index.html e style.css.

O arquivo app.py pertencerá ao branch “main”, e os arquivos index.html e style.css deveriam pertencer ao branch “frontend”.

Vamos usar o comando “git reset <hash_id> –mixed” para desfazer o commit no branch errado e retomar a partir do branch correto.

Passo 1: Criar um diretório e inicializar o repositório git local

Crie o arquivo “app.py” e adicione algum conteúdo a ele.

Faça o primeiro commit na branch “main”:

Passo 2: Criação do branch “frontend” e alterações acidentais no branch “main”

Crie o branch “frontend” a partir da branch “main”:

Aqui vamos simular que você esqueceu de fazer a troca/switch para o branch frontend. É uma situação que pode ocorrer,  por exemplo, quando alguém te chama para uma reunião e você estava no meio da tarefa.

Crie os arquivos “index.html” e “style.css” e adicione algum conteúdo inicial a cada um deles.

Faça o commit desses arquivos. Lembre-se que você esqueceu de trocar de branch e por isso esse commit ficou no branch main.

Você resolve executar o comando para verificar em que branch está.

Agora você percebeu que estava no branch main. Portanto você precisa desfazer esse commit para fazer as alterações no branch correto.

Passo 3: Desfazendo o commit acidental no branch “main”

Identifique o commit que você quer desfazer:

Agora execute o reset usando o hash-id do commit que deve ser desfeito.

Verifique que o commit foi desfeito:

Passo 4: Incorpore as demais alterações nos arquivos agora atuando no branch correto.

Conclusão

Agora você entendeu como usar o comando “git reset <hash_id> –mixed” para desfazer um commit acidental no branch errado e retomar as alterações corretamente no branch “frontend”. Esse comando permite desfazer commits e mover a branch para um commit específico, mantendo as alterações nos arquivos no working directory, mas removendo-as da staging area. Lembre-se de ter cuidado ao usar o “git reset”, especialmente com a opção –hard, pois as alterações não commitadas podem ser perdidas permanentemente. Sempre faça um backup ou crie um novo branch antes de executar comandos que possam alterar o histórico do repositório.

 

 

Rolar para cima