needs how files error conflicts git github git-svn rebase git-rebase

how - git rebase--



Error con git rebase("no se pudo aplicar...") (2)

Como recordatorio para mí mismo sobre cómo resolver esto:

El mensaje de error no es muy informativo. Si escribes

git rebase --continue

te das cuenta de que el error se debe a un conflicto de fusión que git no puede resolver por sí mismo y necesita tu ayuda.

Resuelva los conflictos de fusión en su editor / IDE favorito (sugerencia: esto debería comenzar con i y terminar con ntelliJ)

Marca la resolución con

git add .

Si todos los conflictos se resuelven, deberías ver algo como esto:

(all conflicts fixed: run "git rebase --continue")

Así que continúa tu rebase con

git rebase --continue

Esperemos que tu rebase ahora tenga éxito

git status

muestra:

On branch feature/DIG-19302-Upgrade-mockito-v2 Your branch is behind ''origin/feature/your-feature-branch'' by 2 commits, and can be fast-forwarded. (use "git pull" to update your local branch) nothing to commit, working directory clean

No hagas un tirón git . Si lo hace, solo sobrescribirá sus conflictos de combinación. En su lugar, presione sus resoluciones de conflicto de fusión a la rama) con

git push --force

Has terminado Tu registro de git debería mostrar solo 1 confirmación ahora (que es la actualización forzada que acabas de hacer)

Soy el administrador del repositorio de GitHub https://github.com/plison/opendial . Me gustaría reducir el número de confirmaciones en el repositorio, ya que el repositorio ya tiene algunos miles de confirmaciones, muchas de las cuales son cambios menores de depuración que podrían ser fácilmente aplastados (especialmente los que tienen algunos años).

Por lo tanto, estoy tratando de aplicar rebases para aplastar parte de mis compromisos. Sin embargo, he experimentado el siguiente problema:

  1. Cuando git rebase -i HEAD~10 por ejemplo, git rebase -i HEAD~10 , obtengo un número bastante largo de líneas de confirmación (mucho más de 10) en el editor interactivo. ¿Cuál podría ser la razón?
  2. Más importante aún, una vez que cierro el editor interactivo para iniciar la rebasación, recibo sistemáticamente el mensaje de error "error: no se pudo aplicar", incluso cuando no hago ningún cambio en las confirmaciones (es decir, si dejo todas las líneas como "elegir" , sin ninguna modificación o reordenación).

¿Cómo puedo resolver estos problemas? Cabe señalar que el repositorio se importó automáticamente desde un repositorio anterior (SVN) alojado en Google Code. La conversión parecía haber funcionado bien hasta ahora, pero me pregunto por qué obtengo estos errores al intentar volver a escribir mis confirmaciones.


La historia de su proyecto parece contener una serie de confirmaciones de fusión recientemente (presumiblemente las ha realizado). La presencia de combinaciones de fusión en lo que se desea volver a generar de forma interactiva suele causar problemas. (Una rebase interactiva prácticamente asume un historial lineal, pero las confirmaciones de fusión no son lineales).

Su historial de proyectos también parece tener, de alguna manera, dos historias paralelas que se combinan en commit 11b3653 (use una herramienta como gitk o tig para ver esto, no se muestra bien en la interfaz web de Github).

Le sugiero que intente aplanar primero su historial para deshacerse de las historias paralelas y eliminar las confirmaciones de fusión. Luego, una vez que tenga un historial estrictamente lineal, puede comenzar a reescribir el historial para eliminar toda la rotación de depuración.