Accidentalmente descarto mis cambios en los archivos en mi árbol de trabajo local a través de git checkout. Los archivos no están organizados en este momento. ¿Es posible "deshacer" este pago?
Accidentalmente descarto mis cambios en los archivos en mi árbol de trabajo local a través de git checkout. Los archivos no están organizados en este momento. ¿Es posible "deshacer" este pago?
Creo que si un archivo se modifica pero aún no se agrega (por etapas), 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 visible solo en su directorio actual, pero no está registrado de ninguna manera en Git.
git checkout --
), esperaría que pueda deshacer esa operación, tal vez a través de reflog
. ¿Esa es una expectativa incorrecta?
git checkout folders/subfolders/file
pero presioné enter por accidente después de llegar folder
y perdí todo mi trabajo. / es de 1 cm desde la entrada en mi teclado y cambio entre máquinas con diferentes diseños de teclado a menudo, por lo que a menudo hay 10-15 minutos de mis dedos acostumbrándose a nuevas posiciones. Es difícil de creer en 2018 que git destruya archivos a pesar de que dice en el libro de git que git hace todo lo posible para no perder el trabajo.
Si está utilizando un IDE "profesional", es muy probable que pueda restaurar archivos desde un Historial local. En Rubymine, por ejemplo, puede hacer clic con el botón derecho en los archivos y ver un historial de cambios independientemente de los cambios de git, me salvó algunas veces ahora ^^
Si está trabajando en un editor como Sublime Text, y aún tiene el archivo en cuestión abierto, puede presionar ctrl + z, y volverá al estado que tenía antes del pago de git.
Lamentablemente sus cambios se pierden. Sus modificaciones privadas simplemente se sobrescriben. A menos que lo haya hecho git stash
antes de realizar el pago ...
Tómelo desde el lado positivo: ahora puede implementar las cosas aún mejor;)
Verifique el historial local en su IDE.
¿Desarrollando en OS X? ¿Usando Xcode? ¡Es probable que tengas suerte!
Como se describe en un comentario de qungu , OS X mantiene un historial de archivos guardado automáticamente, incluso si no está utilizando la máquina del tiempo .
Por lo tanto, si ha eliminado sus cambios locales sin escena con descuido git checkout .
, así es como probablemente pueda recuperar todo su trabajo.
Si alguien encuentra que este hilo ha destruido algo de trabajo en XCode, hay una manera de obtener el historial de AutoSave. 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 mirar el historial de AutoGuardar en Archivo> Revertir.
Lo cual es asombroso, y ayer me recuperé de un día de trabajo.
Puede preguntar: "¿Por qué la interfaz de usuario de línea de comandos de git no es la principal VCS utilizada para la ingeniería de software en2016 2017 20182019, ¿al menos hacer una copia de seguridad de los archivos antes de eliminarlos? Como, ya sabes, herramientas de software bien escritas durante las últimas tres décadas ".
O tal vez pregunte: "¿Por qué esta característica increíblemente impresionante del historial de archivos es accesible en TextEdit pero no en Xcode donde realmente la necesito?"
... y ambos, creo, le contarán mucho sobre nuestra industria. O tal vez irás a arreglar esas herramientas. Lo cual sería super.
Model
lamentablemente
En VSCODE ctrl + z (deshacer) funcionó para mí
Lo hice en git checkout .
lugar de git add .
y todos mis cambios de archivo se perdieron.
Pero ahora, usando command + z
mi Mac, recuperé los cambios y me guardó un tono de trabajo.
En caso de que haya ocultado los cambios antes (por ejemplo, antes de volver a crear una nueva versión), esto probablemente ayudará
¿Cómo recuperar un alijo caído en Git?
incluso si ya has 'escondido' los cambios.
Un salvador efectivo para este tipo de situación es Time Machine (OS X) o un sistema de respaldo similar basado en el tiempo. Me salvó un par de veces porque puedo regresar y restaurar solo ese archivo.
Me acaba de pasar eso, ¡revisé una carpeta completa que contiene horas de trabajo! Afortunadamente descubrí que mi IDE Netbeans mantiene un historial de cada archivo, lo que me permitió recuperar el 99% de las cosas a pesar de que necesitaba arreglar algunas cosas manualmente.
Normalmente tengo todo mi trabajo en una carpeta de Dropbox. Esto me asegura que tendría la carpeta actual disponible fuera de mi máquina local y Github. Creo que es mi otro paso para garantizar un "control de versiones" que no sea git. Puede seguir esto para revertir su archivo a versiones anteriores de sus archivos de Dropbox
Espero que esto ayude.
Técnicamente si. Pero solo en ciertos casos. Si, por ejemplo, tiene la página de códigos abierta y presiona git checkout, y se da cuenta de que accidentalmente revisó la página incorrecta o algo así. Vaya a la página y haga clic en deshacer. (para mí, comando + z), y volverá exactamente a donde estabas antes de llegar a la buena compra de git.
Esto no funcionará si su página se ha cerrado y luego presiona git checkout. Solo funciona si la página de códigos real está abierta
Si se trabaja con un terminal / cmd del sistema abierto, y se utiliza ningún comando git que han mostrado los cambios unstaged ( diff
, add -p
, checkout -p
, etc.), y no han cerrado la terminal / cmd pronta ya que, se encuentran los cambios unstaged todavía están disponibles si se desplaza hacia arriba donde ejecutó los comandos git mencionados anteriormente.
Tipo,
Digamos que eres un tipo muy afortunado como lo he sido yo, vuelve a tu editor y haz un deshacer (comando + Z para mac), deberías ver tu contenido perdido en el archivo. Espero que te haya ayudado. Por supuesto, esto solo funcionará para los archivos existentes.
Quizás tus cambios no se pierdan. Verifique "git reflog"
Cito el siguiente artículo:
"Básicamente, cada acción que realizas dentro de Git donde se almacenan los datos, puedes encontrarla dentro del registro. Git intenta realmente no perder tus datos, por lo que si por alguna razón crees que sí, es probable que puedas desenterrarlos usando git reflog "
Ver detalles:
http://gitready.com/intermediate/2009/02/09/reflog-your-safety-net.html
git reflog
aquí, encontré esta respuesta cuando estaba buscando deshacer un git checkout HEAD .
- Tenía la intención de escribir git reset HEAD .
- Acababa de hacer un 'git reset --soft HEAD ~ 1' y no sabía sobre la git reflog
posibilidad de recuperar el trabajo que había hecho :)