Enquanto o Git monitora suas mudanças do dia a dia, ele também possui sistemas como branches que ajudam você a se organizar. Se você não for cuidadoso, pode acabar com problemas como commits e mudanças feitas no branch errado, que podem ser difíceis de resolver sem os comandos certos.
Mudanças em movimento (se você ainda não se comprometeu)
Git zela por toda a sua pasta, mas as mudanças feitas nos arquivos não estão vinculadas a um branch específico até que você as envie. Você pode mover ramos e trazer essas mudanças com você.
A opção mais simples é simplesmente trocar de branches, mas isso só funcionará se os dois branches que você está almejando tem um histórico de correspondência:
git checkout feature
Você pode contornar isso de algumas maneiras. A primeira é fazer uma nova ramificação e, em seguida, mesclar os históricos divergentes:
git checkout -b tempfeature git checkout feature git merge tempfeature
Você também pode usar git stash
para armazenar as alterações para mais tarde e reaplicá-las em uma nova filial:
git stash git switch feature git stash apply
Movendo compromissos (se você já se comprometeu)
Se você já se comprometeu, não se preocupe – você sempre pode fazer um soft reset, então os commits não são finais até que sejam enviados ao controle remoto da fonte. Se você já fez isso, ainda pode corrigir o problema, mas o registro do seu erro permanecerá em seu histórico do Git, então é melhor fazer localmente antes que seus colegas de trabalho vejam.
Para desfazer os commits, você pode simplesmente fazer um soft reset, geralmente desfazendo o último commit feito, mas você também pode passar uma referência ao ID do commit:
git reset HEAD~1
Isso o deixará no estado “ainda não se comprometeu”, após o qual você pode usar os métodos acima para corrigir o problema.
Alternativamente, você pode usar git cherry-pick
. Este comando copia commits de um branch para outro, e é uma boa maneira de selecionar commits e movê-los para novos branches de uma maneira limpa.
Corre git log
para encontrar o ID do commit que você deseja reverter:
git log
Em seguida, verifique o branch de recursos, assumindo que suas alterações foram confirmadas e execute cherry-pick
:
git switch feature git cherry-pick
Depois disso, ainda haverá um commit duplicado no branch principal. Você pode redefinir isso e descartar as alterações se o branch do recurso estiver na ordem adequada ou mantê-lo e deixar o Git resolver o problema assim que você fundir.
0 Comments