O erro:
I git rebase -i --root
'ed meu ramo, ignorantemente pensando que eu poderia reformular o primeiro cometer diferindo do master (o GitHub para Windows modo de exibição padrão é a comparação de dominar, escondendo sua totalidade).
Eu cresci uma barba no Vale do Silício, enquanto mais de 900 commits se carregavam no Sublime. Saindo sem alterações, carreguei minha bateria e comecei a fazer a barba, pois todos os mais de 900 indivíduos se comprometem com indiferença - redefinindo seus tempos de consolidação agora.
Determinado a vencer o Git e preservar os tempos originais, excluí este repositório local e clono novamente no controle remoto.
Agora, havia adicionado novamente o commit desnecessário mais recente ao mestre que eu desejava remover, e assim procedi.
Esgotando as opções:
Eu não queria git revert
- isso criaria um commit adicional, dando ao Git a vantagem.
git reset --hard HEAD
não fez nada, depois de verificar o reflog
, o último e único HEAD
foi o clone - Git vence.
Para obter o SHA mais recente, verifiquei o repositório remoto no github.com - vitória menor.
Depois que o pensamento git reset --hard <SHA>
funcionou, atualizei outro ramo para dominar e 1 ... 2 ... poof! o commit estava de volta - Git vence.
Voltando ao mestre, hora de tentar git rebase -i <SHA>
, em seguida, remova a linha ... sem sucesso, é triste dizer. " Se você remover uma linha aqui, esse compromisso será perdido ". Ah ... encobrindo o novo recurso, troll o n00b nas notas de versão 2.8.3 .
A solução:
git rebase -i <SHA>
então d, drop = remove commit
.
Para verificar, fiz check-out para outro ramo, e pronto - sem esconder o compromisso de buscar / puxar do mestre.
https://twitter.com/holman/status/706006896273063936
Bom dia para você.
cherry-pick
edelete
uma única confirmação que ocorreu há algum tempo.