Se alguém compraria uma filial:
git checkout 760ac7e
por exemplo b9ac70b
, como se pode voltar à última cabeça conhecida b9ac70b
sem conhecer seu SHA1?
Se você se lembrar de qual ramo foi retirado antes (por exemplo master
), você pode simplesmente
git checkout master
para sair do estado HEAD desanexado .
De um modo geral: git checkout <branchname>
você ficará fora disso.
Se você não se lembra do último nome do ramo, tente
git checkout -
Isso também tenta verificar sua última ramificação com check-out.
git checkout -
- recurso matador!git checkout -b new_branch_name
isso, perde os commits feitos enquanto no estado HEAD desanexado?git gc
são executados, eles são removidos para sempre. Você pode assisti-losgit reflog
enquanto eles ainda estiverem lá.Use
git reflog
para encontrar os hashes de confirmações enviadas anteriormente.Um comando de atalho para chegar à sua última ramificação com check-out (embora não esteja certo se isso funciona corretamente com HEAD desanexado e confirmações intermediárias) é
git checkout -
fonte
Eu tive esse caso extremo, em que verifiquei uma versão anterior do código na qual minha estrutura de diretório de arquivos era diferente:
Em um caso como esse, pode ser necessário usar --force (quando você sabe que voltar ao ramo original e descartar mudanças é uma coisa segura a se fazer).
git checkout master
não funcionou:git checkout master --force
(ougit checkout master -f
) trabalhou:fonte
Você pode ter feito alguns novos commit no
detached HEAD
estado. Eu acredito que se você fizer como outras respostas aconselhar:então você pode perder seus commits !! Em vez disso, você pode fazer o seguinte:
e, em seguida, junte
commits-from-detached-head
- se ao ramo que desejar, para não perder os commits.fonte