Estou usando o Sourcetree for Windows para um repositório git e gostaria de desfazer uma confirmação não enviada.
Isso é possível? Se eu "reverter a confirmação", ele cria uma segunda confirmação que reverte a primeira confirmação, mas não quero que a primeira confirmação apareça no meu controle de origem.
Eu também poderia excluir meu repositório local e removê-lo novamente sem o meu commit local, mas talvez haja outra maneira?
atlassian-sourcetree
datasourcecontrol
deimos1988
fonte
fonte
Respostas:
Uma reinicialização suave manterá as alterações locais.
Fonte: https://answers.atlassian.com/questions/153791/how-should-i-remove-push-commit-from-sourcetree
Editar
Sobre
git revert
: Este comando cria um novo commit que irá desfazer outros commit. Por exemplo, se você tem um commit que adiciona um novo arquivo,git revert
poderia ser usado para fazer um commit que excluirá o novo arquivo.Sobre a aplicação de uma reinicialização suave: Suponha que você tenha confirmações
A
emE
(A---B---C---D---E
) e gostaria de excluir a última confirmação (E
). Em seguida, você pode fazer uma redefinição suave para confirmarD
. Com uma reinicialização suave, a confirmaçãoE
será excluída do git, mas as alterações locais serão mantidas. Existem mais exemplos na documentação do git reset .fonte
Se você selecionar a entrada de log para a qual deseja reverter, poderá clicar em "Redefinir para esta confirmação". Use esta opção apenas se você não enviar as alterações de confirmação inversa. Se você estiver preocupado em perder as alterações, poderá usar o modo dinâmico que deixará um conjunto de alterações não confirmadas (o que você acabou de alterar). O uso da combinação redefine a cópia de trabalho, mas mantém essas alterações, e um disco apenas se livra das alterações completamente. Aqui estão algumas capturas de tela:
fonte
Se você deseja excluir uma confirmação, você pode fazê-lo como parte de uma nova base interativa. Mas faça-o com cuidado, para não atrapalhar seu repo.
Em Sourcetree:
Confira esta postagem no blog Atlassian para obter mais informações sobre rebasing interativo no Sourcetree.
fonte
Se você estiver em outro ramo, primeiro precisará "verificar este commit" para confirmar que deseja excluir e somente "redefinir o branch atual para esse commit", escolhendo o commit wright anterior, funcionará.
fonte