En Git, ¿el origen hace un seguimiento de las confirmaciones locales antes de presionar?

Para resumir, la computadora de un compañero de trabajo se bloqueó y perdió su trabajo desde su último empujón. Como último recurso, comencé a pensar acerca de en qué medida el origen es consciente de los compromisos antes de que sean empujados de local a origen. Si el origen está rastreando esto se confirma en alguna location temporal, ¿hay algún modo de volver a poner estas confirmaciones en el código de alguna forma?

No. Los controles remotos en git solo "seguimiento" se comprometen desde un repository diferente a través de dos mecanismos: fetch , en el que solicitan references explícitamente, y push , en el que se les proporcionan references desde otro repository.

Si toda la unidad local está dañada y ya no puede salvar la mayoría del directory .git en el repository, lamentablemente se limita a las forms normales de recuperación de la unidad: git no puede ayudarlo más allá de eso. Lo siento 🙁

Si tienes el repository y acaba de entrar en mal estado, el command git reflog puede ayudarte, o si proporcionas más detalles puedes hacer una espelización más profunda de la database de objects.

* Por supuesto, existen otros mecanismos para hacer esto, pero hacen uso de estas cosas y sus tuberías equivalentes bajo el capó.

origin no está al tanto de los commits hasta que sean empujados. Eso es más o less a la parte "distribuida" de un sistema de control de fuente distribuida. Esos cambios "locales" podrían ocurrir en cualquier lugar, de todos modos; mientras la computadora está fuera de línea, el paso de push es el process de notificación al control remoto sobre los nuevos cambios