Acabo de eliminar la rama incorrecta con algunos cambios experimentales que necesito git branch -D branchName
.
¿Cómo recupero la rama?
fuente
Acabo de eliminar la rama incorrecta con algunos cambios experimentales que necesito git branch -D branchName
.
¿Cómo recupero la rama?
Puede usar git reflog para encontrar el SHA1 de la última confirmación de la rama. Desde ese punto, puede recrear una rama utilizando
git branch branchName <sha1>
Editar: como dice @seagullJS, el branch -D
comando le dice el sha1, por lo que si aún no ha cerrado el terminal, se vuelve realmente fácil. Por ejemplo, esto elimina y luego restaura inmediatamente una rama llamada 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
Si aún no ha empujado la eliminación, simplemente puede hacer:
$ git checkout deletedBranchName
Si acaba de eliminar la rama, verá algo como esto en su terminal:
Deleted branch branch_name(was e562d13)
- donde e562d13 es un ID único (también conocido como "SHA" o "hash"), con esto puede restaurar la rama eliminada.
Para restaurar la rama, use:
git checkout -b <branch_name> <sha>
por ejemplo :
git checkout -b branch_name e562d13
Primero: haga una copia de seguridad de todo su directorio, incluido el directorio .git.
Segundo: puede usar git fsck --lost-found
para obtener la identificación de los commits perdidos.
Tercero: rebase o fusione el commit perdido.
Cuarto: siempre piense dos veces antes de usar -D o --force con git :)
También podría leer esta buena discusión sobre cómo recuperarse de este tipo de error.
EDITAR: Por cierto, no ejecute git gc
(ni permita que se ejecute solo, es decir, no ejecute git fetch
ni nada similar) o puede perder sus confirmaciones para siempre.
Gracias, esto funcionó.
git branch new_branch_name
sha1
git checkout new_branch_name
// puedo ver mis archivos registrados en mi antigua sucursal
Sigue estos pasos:
1: Ingrese:
git reflog show
Esto mostrará todo el historial de confirmaciones, debe seleccionar el sha-1 que tiene la última confirmación que desea recuperar
2: cree un nombre de sucursal con la ID de Sha-1 que seleccionó, por ejemplo: 8c87714
git branch your-branch-name 8c87714
Esto funcionó para mí:
git fsck --full --no-reflogs --unreachable --lost-found
git show d6e883ff45be514397dcb641c5a914f40b938c86
git branch helpme 15e521b0f716269718bb4e4edc81442a6c11c139