git fusionar conflicto debido al cambio de nombre en dos ramas: ¿cómo solucionarlo y evitarlo en el futuro?
Tengo dos sucursales localesmaster
ydev
. Ambas ramas contenían tres carpetas:
projectBeta
project
project_v1
Solo quería mantenerprojectBeta
y eliminarproject
yproject_v1
y luego renombrarprojectBeta
comoproject
. Entonces eso es lo que hice por separado en ambas ramas, comprometiéndome a medida que avanzaba. Todo se veía bien hasta que intenté fusionar eldev
branch to master, y obtuve un montón de este tipo de errores:
CONFLICT (rename/delete): Rename projectBeta/test.c->project/test.c in dev and deleted in HEAD
CONFLICT (rename/delete): Rename project_v1/test.c->project/test.c in HEAD and deleted in dev
or lo tanto, parece que Git rastreó los cambios de nombre de diferentes maneras en las diferentes ramas.
Si hago ungit status
, Yo obteng
# On branch master
# Unmerged paths:
# (use "git add/rm <file>..." as appropriate to mark resolution)
#
# added by us: project/test.c
#
no changes added to commit (use "git add" and/or "git commit -a")
Lo primero que no entiendo es por qué el estado solo dice que "lo agregamos" cuando el informe de fusión dice que nosotros y ellos cambiamos el nombre y lo eliminamos.
n segundo lugar, quiero usar la versión de la rama de desarrollo (ellos) de test.c, pero ahora cuando intento
git co --theirs project/test.c
Yo obteng
error: path 'project/test.c' does not have their version
... ¿entonces no sé cómo asegurar que la fusión usará el contenido de la rama de desarrollo?
Finalmente, ¿hay una forma de mejores prácticas para evitar un desastre como este en el futuro? Básicamente, cambiar las estructuras de carpetas de forma independiente en las ramas donde el contenido no está listo para fusionarse primero ...