Accidentalmente descarto mis cambios en archivos en mi árbol de trabajo local a través de git checkout. Los archivos no están preparados en este momento. ¿Es posible “deshacer” este pago?
Git: cómo deshacer una extracción de archivos no preparados que descarta los cambios locales
Michael Wallasch
Si está utilizando un IDE “profesional”, es muy probable que pueda restaurar archivos desde un Historial local. En Rubymine, por ejemplo, puede hacer clic derecho en los archivos y ver un historial de cambios independiente de los cambios de git, me salvó algunas veces ahora ^^
-
Para su información, esta característica está disponible en toda la familia JetBrains de IDE “profesionales”: Pycharm, IDEA, PHPStorm, Webstorm. Salvé mi bakken hoy. ¡Gracias, Cristóbal!
– Robo B
3 de diciembre de 2012 a las 22:08
-
tengo que agradecerte Uso WebStorm y me olvidé por completo de esa función, aunque la uso con bastante frecuencia. ¡Estaba tan atrapado por la pérdida de código que no pensé en ello!
– Tyson Phalp
5 de abril de 2013 a las 3:16
-
En eclipse, puede hacer clic derecho en el archivo -> comparar con -> historial local
– Maragües
31 de mayo de 2013 a las 15:05
-
magnífico. Sublime2 deshacer también revirtió los cambios realizados por git checkout accidental en el disco.
– caray
10 de diciembre de 2013 a las 15:03
-
Si alguien encuentra que este hilo ha destruido algún trabajo en XCode, hay una manera de obtener el historial de Autoguardado. XCode en sí no tiene una entrada de menú para ver el historial de Autoguardado, pero lo almacena. Si abre los archivos en cuestión en TextEdit, puede revertir y revisar el historial de Autoguardado en Archivo > Revertir.
– qingu
28 de noviembre de 2014 a las 16:16
VonC
Creo que si un archivo se modifica pero aún no se agrega (escenifica), es puramente “privado”.
Lo que significa que GIT no puede restaurarlo si se sobrescribe con el índice o la versión HEAD (a menos que tenga una copia de su trabajo actual en alguna parte).
Un contenido “privado” es uno solo visible en su directorio actual, pero no registrado de ninguna manera en Git.
Nota: Como se explica en otras respuestas, puede recuperar sus cambios si usa un IDE (con historial local) o tiene un editor abierto (ctrl + Z).
-
Entiendo que git no puede deshacer los cambios en un archivo ‘privado’. Sin embargo, si el archivo fue modificado por git (por ejemplo, a través de
git checkout --
), espero que sea capaz de deshacer esa operación, tal vez a través de lareflog
. ¿Es esa una expectativa equivocada?– Ciprian Tomoiaga
27/11/2016 a las 22:30
-
@CiprianTomoiaga reflog es para el pasado sin referencia se compromete Si lo que desea restaurar no se comprometió (o preparó), reflog no lo ayudará.
– VoC
27 de noviembre de 2016 a las 22:32
-
@CiprianTomoiaga para cualquier tipo de contenido privado (aún no agregado), confiaría únicamente en su editor o función IDE. Ejemplo de eclipse: ayuda.eclipse.org/neon/…
– VoC
27 de noviembre de 2016 a las 22:33
-
¡Guau! Increíble. Necesitaba revisar un archivo, así que quise escribir
git checkout folders/subfolders/file
pero presionó enter por accidente después de llegar afolder
y perdí todo mi trabajo. / está a 1 cm de entrar en mi teclado y cambio a menudo entre máquinas con diferentes diseños de teclado, por lo que a menudo hay 10-15 minutos para que mis dedos se acostumbren a nuevas posiciones. Difícil de creer en 2018 que git desecha archivos a pesar de que dice en el libro de git que git hace todo lo posible para no perder el trabajo.– gman
4 de julio de 2018 a las 5:47
-
@gman, ¿la respuesta a continuación sobre el “historial local” proporcionada por un IDE lo ayuda a recuperar su trabajo?
– VoC
4 de julio de 2018 a las 6:02
romano-romano
Si está trabajando en un editor como Sublime Text y tiene el archivo en cuestión aún abierto, puede presionar ctrl+z y volverá al estado que tenía antes de git checkout.
-
Esta respuesta me salvó el día. ¡Muchas gracias!
– feyyaz
13 de noviembre de 2016 a las 10:36
-
Me topé con esta solución por accidente hace un momento y estaba a punto de publicar una nueva respuesta. Parece que Sublime captura a Git cambiando el estado del archivo en su historial de modificación de archivos.
– Timmah
9 de junio de 2017 a las 7:07
-
Trabajó para mí en Ecipse.
– Anomalía
17/07/2018 a las 19:25
-
Trabajó para Visual Studio Code también
– intotecho
9 de septiembre de 2018 a las 11:59
Lamentablemente, sus cambios se han perdido. Sus modificaciones privadas simplemente se sobrescriben. a menos que lo hicieras git stash
antes de hacer el pago…
Tómalo desde el lado positivo: ahora puedes implementar las cosas aún mejor 😉
benjohn
desarrollando en OS X? Utilizando ¿Xcode? ¡Es probable que tengas suerte!
Como se describe en un comentario de qungu, OS X mantiene un historial de versiones de archivos guardado automáticamente, incluso si no estás usando la máquina del tiempo.
Por lo tanto, si ha arrasado con sus cambios locales no organizados con un descuido git checkout .
así es como puedes probablemente recuperar todo su trabajo.
Si alguien encuentra que este hilo ha destruido algún trabajo en XCode, hay una manera de obtener el historial de Autoguardado. XCode en sí no tiene una entrada de menú para ver el historial de Autoguardado, pero lo almacena. Si abre los archivos en cuestión en TextEdit, puede revertir y revisar el historial de Autoguardado en Archivo > Revertir.
Lo cual es increíble, y ayer me recuperé sobre un día de trabajo.
Podrías preguntar, “¿Por qué la interfaz de usuario de línea de comandos de git, el principal VCS utilizado para la ingeniería de software en 2016 2017 2018 2019 2020, ¿al menos hacer una copia de seguridad de los archivos antes de simplemente eliminarlos? Como, ya sabes, herramientas de software bien escritas durante las últimas tres décadas”.
O tal vez te preguntes, “¿Por qué se puede acceder a esta increíble función de historial de archivos en TextEdit pero no en Xcode donde realmente la necesito?”
… y ambos, creo, le dirán mucho sobre nuestra industria. O tal vez vayas y arregles esas herramientas. Lo cual sería genial.
-
Puedo confirmar que esto funciona. ¡Esto me ahorró horas de trabajo!
–Bruno Rocha
5 de enero de 2018 a las 15:15
-
no funcionó para mí porque el archivo en cuestión era el
Model
desafortunadamente– Siempay
25 de enero de 2018 a las 16:46
-
@brahimm el modelo?
– Benjohn
25 de enero de 2018 a las 18:26
-
Esto me acaba de ahorrar una tonelada de angustia. Muchas gracias.
– rana cuadrada
19 de abril de 2018 a las 10:49
-
Muy interesante: hice clic derecho en mi archivo fuente y miré el menú “Abrir con”. Tanto TextEdit 1.14 como TextEdit 1.6 estaban allí como opciones. Solo TextEdit 1.14 tenía la opción de volver a revisiones anteriores. La interfaz de usuario era muy agradable, al igual que TimeMachine.
– pan de molde
17/03/2019 a las 21:55
marcin szymczak
Consulta el historial local en tu IDE.
-
Puedo confirmar que esto funciona. ¡Esto me ahorró horas de trabajo!
–Bruno Rocha
5 de enero de 2018 a las 15:15
-
no funcionó para mí porque el archivo en cuestión era el
Model
desafortunadamente– Siempay
25 de enero de 2018 a las 16:46
-
@brahimm el modelo?
– Benjohn
25 de enero de 2018 a las 18:26
-
Esto me acaba de ahorrar una tonelada de angustia. Muchas gracias.
– rana cuadrada
19 de abril de 2018 a las 10:49
-
Muy interesante: hice clic derecho en mi archivo fuente y miré el menú “Abrir con”. Tanto TextEdit 1.14 como TextEdit 1.6 estaban allí como opciones. Solo TextEdit 1.14 tenía la opción de volver a revisiones anteriores. La interfaz de usuario era muy agradable, al igual que TimeMachine.
– pan de molde
17/03/2019 a las 21:55
ishab acharya
En VSCODE ctrl+z (deshacer) funcionó para mí
Hice git checkout .
en vez de git add .
y todos los cambios de mi archivo se perdieron.
Pero ahora usando command + z
en mi mac, recuperé los cambios y me guardó un tono de trabajo.
-
¿hay alguna otra forma?
– Abdul Manán
2 de marzo de 2020 a las 14:30
No, no podemos, pero si está usando Eclipse, podemos verificar Equipo–>Historial local
– USM
5 de febrero de 2019 a las 5:33