2011-01-28 22 views
9

Me he ramificado desde el maestro y he creado una rama llamada extra_work. Luego realicé muchos cambios en el maestro, que también incluyeron la eliminación de algunos archivos. Más tarde, cuando traté de fusionar la rama 'extra_work' en el maestro, no se está fusionando por completo. No está agregando los archivos que eliminé en el maestro, básicamente todo el trabajo que había deshecho, ahora lo quiero de nuevo en mi maestro. Cómo fusionar estas dos ramas para que todos los archivos extra/trabajo de mi rama 'extra_work' se fusione en el maestro. GraciasGit Merge: no fusionar todos los cambios desde la rama remota

Respuesta

1

Me encontré con el mismo problema muy recientemente al hacer una refactorización importante. Resolví el problema haciendo git rebase, desde master volviendo a basar en extra-work. No entiendo completamente todo esto, pero la fusión fue terrible (como la experimentaste) pero cambiar de rumbo en esta dirección en particular fue muy fácil. Vea el libro de git en rebasing: http://book.git-scm.com/4_rebasing.html

12

Rebase su rama extra_work contra master. Esto rebobinará su rama extra_work al estado cuando se ramificó y aplicará las confirmaciones desde master hasta extra_work. Luego volverá a reproducir todas las confirmaciones desde extra_work sobre sí mismo. Si inspecciona git log, verá las confirmaciones desde master más atrás en el historial de la sucursal. Debería poder fusionar al master sin problemas.

git rebase master 
+1

mejor (es decir, más simple) explicación de la rebase que he escuchado. aclamaciones. –

+0

Las rebases son la forma en que los cambios deberían pasar desde la parte superior de la jerarquía hacia abajo y las fusiones son la forma en que fluyen hacia arriba. https://www.derekgourlay.com/blog/git-when-to-merge-vs-when-to-rebase/ – CrandellWS

Cuestiones relacionadas