Acabei de excluir o ramo errado com algumas alterações experimentais que preciso git branch -D branchName
.
Como recupero a ramificação?
Acabei de excluir o ramo errado com algumas alterações experimentais que preciso git branch -D branchName
.
Como recupero a ramificação?
Respostas:
Você pode usar o git reflog para encontrar o SHA1 do último commit da ramificação. A partir desse ponto, você pode recriar uma ramificação usando
git branch branchName <sha1>
Edit: Como o @seagullJS diz, o branch -D
comando informa o sha1, por isso, se você ainda não fechou o terminal, ele se torna muito fácil. Por exemplo, isso exclui e restaura imediatamente uma ramificação chamada master2
:
user@MY-PC /C/MyRepo (master)
$ git branch -D master2
Deleted branch master2 (was 130d7ba). <-- This is the SHA1 we need to restore it!
user@MY-PC /C/MyRepo (master)
$ git branch master2 130d7ba
git branch branchName origin/branchName
Se você acabou de excluir a ramificação, verá algo parecido com isto em seu terminal:
Deleted branch branch_name(was e562d13)
- onde e562d13 é um ID exclusivo (também conhecido como "SHA" ou "hash"), com isso você pode restaurar a ramificação excluída.
Para restaurar a ramificação, use:
git checkout -b <branch_name> <sha>
por exemplo :
git checkout -b branch_name e562d13
Primeiro: faça backup de todo o diretório, incluindo o diretório .git.
Segundo: você pode usar git fsck --lost-found
para obter o ID das confirmações perdidas.
Terceiro: rebase ou mesclagem no commit perdido.
Quarto: sempre pense duas vezes antes de usar -D ou --force com git :)
Você também pode ler esta boa discussão sobre como se recuperar desse tipo de erro.
EDIT: A propósito, não corra git gc
(ou permita que ele corra sozinho - ou seja, não corra git fetch
ou algo parecido) ou você poderá perder seus commits para sempre.
Obrigado, isso funcionou.
ramificação git new_branch_name
sha1
git checkout new_branch_name
// pode ver meus arquivos antigos registrados no meu ramo antigo
Siga esses passos:
1: Digite:
git reflog show
Isso exibirá todo o histórico de confirmação, você precisa selecionar o sha-1 que tem o último commit que você deseja recuperar
2: crie um nome de filial com o ID Sha-1 selecionado, por exemplo: 8c87714
git branch your-branch-name 8c87714