Eu acidentalmente enviei uma alteração em estágio em um novo branch no Visual Studio 2017 para meu repositório local. Ele não foi enviado para o repositório remoto. Quero me livrar dele, mas não consigo encontrar uma maneira de fazer isso. Eu fiz a realocação do branch master local para o novo branch. Então eu apaguei o novo ramo. Mas Outgoing Commits ainda mostra isso. Como deletar ou reverter?
git
visual-studio
visual-studio-2017
Tony_Henrich
fonte
fonte
Respostas:
Abra a guia de histórico no Team Explorer a partir do bloco Ramos (clique com o botão direito em seu ramo). Então, no histórico, clique com o botão direito no commit antes daquele que você não deseja enviar, escolha Reset. Isso moverá o branch de volta para aquele commit e deve se livrar do commit extra que você fez. Para reiniciar antes de um determinado commit, você deve selecionar seu pai.
Dependendo do que você deseja fazer com as alterações, escolha difícil , o que as eliminará localmente. Ou escolha soft, que desfará o commit, mas deixará seu diretório de trabalho com as mudanças em seu commit descartado.
fonte
Não consegui encontrar uma única boa resposta que me ajudasse a me livrar desse problema.
Digamos que o nome do branch para o qual você fez o commit acidentalmente, é
master
. Seguir quatro passos simples provou ser um mundo para mim:master
master
remotes/origin
fonte
revert
Supondo que você tenha enviado as alterações mais recentes ao servidor:
Depois de reabrir o projeto, os commits e as alterações devem ser zero.
fonte
TL; DR:
Use
git reset --soft HEAD~
no cmd da pasta .slnEu estava enfrentando isso hoje e fiquei surpreso com o que
VSCode
sugere tal coisa, enquanto é irmão mais velhoVisual Studio
não.A maioria das respostas foi útil; se eu tiver mais commits feitos antes, perder todos eles seria frustrante. Além disso, se
VSCode
fizer isso em meio segundo, não deve ser complexo.Apenas a resposta de jessehouwing foi a mais próxima de uma solução simples.
Supondo que os commits indesejados foram os últimos a acontecer, aqui está como eu resolvi:
Vá para
Team Explorer
->Sync
. Lá você veria todos os commits. Pressione oActions
menu suspenso eOpen Command Prompt
Você terá a janela cmd solicitada, escreva lá
git reset --soft HEAD~
. Se houver vários commits indesejados, adicione o valor após~
(ou sejagit reset --soft HEAD~5
)(Se você não estiver usando
git
, verifique o uso coloquial).Espero que ajude e espero que na próxima versão a equipe do VS o adicione integrado
fonte
Vá para a guia Team Explorer e clique em Ramificações. Nas filiais, selecione sua filial de remotos / origem. Por exemplo, você deseja redefinir seu branch master. Clique com o botão direito do mouse na ramificação mestre em remotos / origem e selecione Reiniciar e clique em Excluir alterações. Isso irá redefinir sua filial local e remover todas as alterações confirmadas localmente.
fonte
Tente rebase seu branch master local em seu branch master remoto / de origem e resolva quaisquer conflitos no processo.
fonte
Você tem 2 opções aqui para fazer isso para descartar todos os seus commits de saída OU para desfazer o commit específico.
1- Descarte todos os seus commits de saída:
Para descartar todos os seus commits de saída Por exemplo, se você tiver um branch local chamado master de um branch remoto, você pode:
1- Renomeie seu branch local de master para qualquer coisa para que você possa removê-lo. 2- Remova o ramo renomeado. 3- criar um novo ramo a partir do mestre
Então agora você tem um novo branch sem seus commits ..
2- Desfazer commit específico: Para desfazer commit específico, você deve reverter o desnecessário por:
1- Clique duas vezes no commit desnecessário. Clique duas vezes no commit desnecessário 2- Clique em reverter Clique em reverter
Mas, para sua informação, o commit revertido aparecerá na história de seus commits com o commit de reversão.
fonte