Guión:
- Hago una nueva rama
- piratearlo
- cometerlo
- empujalo
- hackearlo un poco más
- comprometerse de nuevo
- intenta empujar de nuevo
Git responde:
Las actualizaciones se rechazaron porque la punta de su rama actual está detrás de su contraparte remota. etc.
Soy el único que hackeando esta rama; nadie más la está tocando. La rama remota está realmente detrás de la rama local. No debería tener que tirar en absoluto.
(Y si lo hago, Git informa conflictos entre los dos y me obliga a fusionar la rama en sí misma)
¿Por qué (probablemente) está sucediendo esto? ¿Y cómo puedo diagnosticarlo / solucionarlo?
Para ser claros, no me estoy ramificando en ningún lado y nadie más está trabajando en eso:
Remote: Commit A -------- Commit B
Local: Commit A -------- Commit B -------- Commit C
C es una continuación directa de B, sin ramificaciones involucradas. Pero git piensa que C es una rama de A:
Remote: Commit A -------- Commit B
------- Commit C
/
Local: Commit A -------- Commit B
No es; es una continuación directa de B.
git remote -v
ygit show remote origin
(asumiendo que el origen es el control remoto con el que tiene problemas) puede ser útil