Cuando Git elimina o elimina un file, ¿a dónde va?

Cuando Git elimina files mediante un reinicio suave o completo, ¿a dónde van estos files? ¿Hay alguna forma de volver a la condición antes de un restablecimiento mixto?

Normalmente, cuando se elimina un file en un sistema operativo, se va a una papelera. Cuando los files se eliminan o eliminan a través de Git, parecen entrar en un éter. ¿A dónde van estos files?

Tengo una stack de files nuevos que no se agregaron correctamente y ejecuté tontamente un restablecimiento mixto y ahora estos files no se ven.

Estoy usando SourceTree para OS X por cierto.

Si realizó un restablecimiento --mixed o --soft , entonces los files en su directory no se habrían ido a ninguna parte porque esos types de reinicios no afectan su tree de trabajo. Con un reinicio --hard los files en su tree de trabajo serán eliminados.

Solo una pequeña explicación del uso del command de reinicio de git:

Los principales parameters son suaves, duros y mixtos . Estos le dicen a Git qué hacer con su índice y copy de trabajo cuando realiza el reinicio.

Suave

El parámetro –soft le dice a Git que reinicie HEAD a otro commit, pero eso es todo. Si especificas –soft Git se detendrá allí y nada más cambiará. Lo que esto significa es que el índice y la copy de trabajo no se tocan, por lo que todos los files que cambiaron entre el HEAD original y el commit que reinició parecen estar organizados.

Mixto (pnetworkingeterminado)

El parámetro " mezclado " (que es el valor pnetworkingeterminado si no especificas nada) restablecerá HEAD a otra confirmación y restablecerá el índice para que coincida, pero se detendrá allí. La copy de trabajo no se tocará. Por lo tanto, todos los cambios entre el HEAD original y el commit al que reinició están todavía en la copy de trabajo y aparecen como modificados, pero no escalonados.

Difícil

El parámetro –hard soplará todo– restablece HEAD a otra confirmación, restablece el índice para que coincida y restablece la copy de trabajo para que coincida también. Este es el más peligroso de los commands y es donde puedes causar daño. ¡Los datos pueden perderse aquí!

Y más, puedes recuperar los datos perdidos hasta cierto punto usando git reflog .

Entonces, en su caso, los datos solo deberían estar presentes allí, ya que usted dio el parámetro "mezclado".

Cuando los files se eliminan o eliminan a través de Git, parecen entrar en un éter. ¿A dónde van estos files?

Cuando hagas un reinicio completo, unlink(2) los files.

Es posible que los datos aún estén allí en el sistema de files, pero no hay garantías. Lea https://unix.stackexchange.com/questions/10883 donde se mencionan algunas herramientas de recuperación, principalmente para ext3.

Los commands git commit , stash y branch se usan a menudo para save el trabajo. También preste especial atención al reflog para ubicar y volver a recuperar los cambios de hoja fuera de control, especialmente después de un reset .