Hemos estado tratando de obtener git-subtree trabajando en un proyecto (con la versión de Git 1.7.9.4) y nos hemos encontrado con una complicación. Otra persona anterior añadió el subárbol con este comando hace unos meses:git-subárbol complicaciones de extracción
git subtree add --prefix=foo [email protected]:foo.git master
Ahora se han producido cambios sustanciales a foo
y nos gustaría fusionar en esos cambios, lo ideal es aplastarlos en ninguno de los archivos han sido. modificado desde que fueron importados.
He intentado tres cosas para intentar fusionarme en los cambios.
Primero:
git subtree pull --squash -P foo [email protected]:foo.git master
que arroja la excepción: Can't squash-merge: 'foo' was never added.
Segundo:
git subtree pull -P foo [email protected]:foo.git master
esto funciona (más o menos), pero tiene el problema de tirar en todas las confirmaciones y tiene conflictos con los archivos que se han modificado.
Por último, he intentado esto:
git pull --squash -s subtree [email protected]:foo.git master
Esto me da el resultado deseado, con la salida Automatic merge went well; stopped before committing as requested
y todos los archivos a aparecer modificado (con el contenido correcto).
Idealmente, me gustaría seguir utilizando la primera versión git-subtree
y obtener una salida cercana a la última versión. Si tenemos que usar la última versión de manera consistente en el futuro, lo haremos, pero estoy un poco confundido acerca de por qué el último no produce conflictos de fusión mientras que el del medio lo hace.
Cualquier ayuda es apreciada.
Tuve el mismo problema que resultó haber sido causado por la pérdida de una subcarpeta en la opción de prefijo al intentar extraer. Agregar esto como un comentario ya que el mensaje de error no da ninguna indicación de este error y la solución de problemas me llevó aquí. –
Gracias, esto es útil. Tuve un problema relacionado en el que moví el subdirectorio después de agregar el subárbol en él, lo que parece estropear este juego –