2012-02-28 16 views
10

Después de empujar a Bitbucket mis colegas se eliminan compromete y aparece un mensaje en el suministro de noticias bitbucketBitbucket despojado revisiones git

stripped 6f9de58aa748 from projektA 
4 hours ago 
stripped 54dae89de600 from projektA 
4 hours ago 
stripped e04022989a9d from projektA 
... 

¿Cómo puedo rescatar las confirmaciones? ¿Es realmente Git un sistema de control de versiones que permite eliminar confirmaciones? ¿Esto se debe a --force?

Respuesta

10

¿Cómo puedo rescatar las confirmaciones?

Lamentablemente, no hay nada que pueda hacer en su sitio para recuperar estos commits (details). Debe ponerse en contacto con el equipo de servicio de BB ya que solo ellos pueden restaurar estos commits.

¿Es realmente Git un sistema de control de versiones que permite eliminar confirmaciones?

Cuando lo configura así. Debe establecer receive.denyNonFastForwards en true para deshabilitar este comportamiento en el repositorio en el servidor (que es el predeterminado cuando se ejecutó git init con la opción --shared, pero de lo contrario es falso).

¿Esto se debe a --force?

Sí, utilizando el parámetro vigor el git push hace que el GIT lado del servidor para desactivar el control de seguridad si su nueva cabeza de la rama tira a la basura otra confirmación, y receive.denyNonFastForwards es falsa.

+2

Dado que Git es un sistema distribuido, ¿el OP no puede recuperar las confirmaciones perdidas de los repos locales de sus colegas? Al menos, hasta que restablecen sus repositorios locales para que coincida con el origen? –

4

En el caso de cualquier otra persona encuentra este hilo buscando desesperadamente "Bitbucket despojado compromete" como lo fue:

que lograron restablecer la mina localmente siguiendo these instructions.

Luego presioné bitbucket nuevamente y los commits eliminados se restauraron.

+0

El reflog es de hecho una gran herramienta para deshacer los errores locales, pero no ayudará si las confirmaciones que ha sobrescrito nunca estuvieron en su repositorio local, como cuando fuerza el envío a un control remoto que tiene confirmaciones más nuevas que las suyas. –

0

También nos enfrentamos a esto recientemente. Muy molesto, debo decir. Pero en nuestro caso, las confirmaciones eliminadas se restauraron inmediatamente después de que el usuario original volvió a presionar. La otra cosa que hicimos para evitar que esto vuelva a ocurrir fue desactivar "Reescribir la historia" en la rama en cuestión.

Espero que esto ayude a alguien que enfrenta esto en el futuro!

Cuestiones relacionadas