De alguna manera tengo algunos commits duplicados en una rama, cada uno con los mismos cambios. Es una sucursal pública, fusionada de varias sucursales por varios usuarios. Necesito actualizar periódicamente esta rama en la rama principal de otro repositorio, y estos duplicados lo hacen torpe.git: eliminar las confirmaciones duplicadas de la rama pública
¿Hay alguna manera de eliminar estos y enviarlos al repositorio público sin que sea complicado para otros usuarios que trabajan desde la sucursal?
Suponiendo que considere la recuperación de la reescritura del historial (es decir, la rebase de todo desde la rama pública original a la nueva) como complicada, no, no hay forma de hacerlo. La eliminación de confirmaciones está reescribiendo el historial. – Cascabel
¿Estás seguro de que tienes commits duplicados _en la misma rama_? A mi parecer, la única forma real de que esto pueda suceder es primero reajustando y luego fusionando la rama previamente rebasada. Sin embargo, la fusión no será rápida, y las confirmaciones fusionadas serán técnicamente 'desde la fusión' no 'desde la sucursal' (es decir, cuando se sigan a los primeros padres solamente, un registro no mostrará las confirmaciones). ¿Tiene sentido? – sehe
Creo que sehe tiene razón, tienes que asegurarte de que estén en la misma rama. "rebase -i" debería aclarar eso momentáneamente, ya que el OP podrá ver de inmediato si el problema realmente existe como se describe –