La persona A envió sus files a un repository de Github, y luego la persona B envió su file al mismo repository de Github.
A no le gustó la confirmación de B, y recuperó el repository de Github nuevamente donde estaba antes del empuje de B. A afirmó usar el siguiente command para lograr eso
git push origin master -f
y podría malinterpretar alguna parte del command, porque no estoy familiarizado con las cosas.
A no ha cambiado nada en su repository local desde su empuje.
Mis preguntas son
Gracias.
Esto es probablemente lo que sucedió:
git push origin master -f
, indicándole al repository remoto que vuelva a mover la reference de bifurcación principal a la confirmación 1 (o a lo que cometa su punto de bifurcación maestro actual). Ahora, para responder tus preguntas:
¿Por qué no puedo encontrar el compromiso de B en la historia del repository github? ¿Por qué solo hay un compromiso por parte de A, como lo que era antes del empuje de B?
La confirmación de B todavía está allí, pero ya no está siendo referenceda por ninguna twig. Cuando haces que git log
esté en master , solo ves la confirmación a la que apunta esta twig y todos sus ancestros. No se mostrarán otros commit que sean hijos de commit 1 o no relacionados con commit 1.
La única forma en que encontré para listr una confirmación huérfana es hacer git reflog
en una máquina que recientemente tuvo esa confirmación desprotegida.
¿Qué hace el command que A usó? ¿Volver todo al punto anterior al empuje de B?
Vea la tercera viñeta arriba.
La bandera -f
significa fuerza. Solo puedo adivinar, pero lo que probablemente sucedió fue que A no tenía el cambio de B aún así que para "revertir" el cambio de B, lo único que tenía que hacer A era forzar la fuerza.