Acabo de eliminar la rama incorrecta con algunos cambios experimentales que necesito con git branch -D branchName
.Git deshacer rama local eliminar
¿Cómo recupero la rama?
Acabo de eliminar la rama incorrecta con algunos cambios experimentales que necesito con git branch -D branchName
.Git deshacer rama local eliminar
¿Cómo recupero la rama?
Puede usar git reflog para encontrar el SHA1 de la última confirmación de la bifurcación. A partir de ese momento, puede volver a crear una rama utilizando
git branch branchName <sha1>
Editar: Como dice @seagullJS, el comando branch -D
le indica el sha1, así que si no has cerrado el terminal, sin embargo, se vuelve muy fácil. Por ejemplo, esto elimina y luego se restaura de inmediato una rama llamada master2
:
[email protected] /C/MyRepo (master)
$ git branch -D master2
Deleted branch master2 (was 130d7ba). <-- This is the SHA1 we need to restore it!
[email protected] /C/MyRepo (master)
$ git branch master2 130d7ba
Git te dice qué SHA1 era cuando se borró la rama, por lo que si simplemente la eliminas podría ser solo unas pocas líneas en la línea de comando. – seagullJS
¡Gracias, esto me ahorró horas de trabajo! FYI uso git reflog para obtener el
Muchas gracias, encontré mis archivos "perdidos"! – inix
Primero: copia de seguridad de toda su directorio, incluido el directorio .git.
Segundo: Puede usar git fsck --lost-found
para obtener la ID de las confirmaciones perdidas.
Tercero: rebase o combine en la confirmación perdida.
Cuarto: Siempre piensa dos veces antes de usar -D o --force con git :)
Usted también podría read this good discussion de cómo recuperarse de este tipo de error.
EDITAR: Por cierto, no ejecute git gc
(o permita que se ejecute por sí mismo, es decir, no ejecute git fetch
o algo similar) o puede perder sus compromisos para siempre.
Si no has empujar la eliminación sin embargo, sólo tiene que hacer:
$ git checkout deletedBranchName
Esta respuesta hace que las extensiones de Git se cierren sobre "la rama que intentas empujar parece ser una nueva rama para este control remoto". Muchas gracias. – Omer
Si usted acaba de eliminar la rama, se verá algo como esto en su terminal:
Deleted branch branch_name(was e562d13)
- donde e562d13 es una ID única (también conocida como "SHA" o "hash"), con esto puede restaurar la rama eliminada.
Para restaurar la rama, utilice:
git checkout -b <branch_name> <sha>
por ejemplo:
git checkout -b branch_name e562d13
Gracias, esto funcionó.
new_branch_name git branch
sha1
new_branch_name git checkout
// puede ver a mi viejo comprobado en los archivos en mi rama de edad
contento de saber que no soy la única lame- o ¿quién hizo esto (y se olvidó de presionar regularmente para copiar de forma remota) – Ray
que hace que 3 de nosotros ahora –