¿El comando “git subtree add” no muestra el historial de archivos por archivo en los archivos agregados… ¿es esto un comportamiento correcto?
Nunca he usado git subtree
antes, pero estoy tratando de migrar un repositorio git a mi repositorio de código de la siguiente manera:
C:\code>git subtree add -P database/scripts c:\git\other-repo HEAD -m="Migrar desde other-repo"
No me da ningún error y puedo ver todas las confirmaciones fusionándose en mi historial, y puedo ver las diferencias en las confirmaciones históricas fusionadas pero al intentar ver el registro de un archivo individual que se fusionó (en TortoiseGit), solo muestra una sola confirmación en lugar de docenas en other-repo
. La historia de confirmaciones del archivo no se muestra aunque puedo ver que las confirmaciones y diferencias están presentes en el historial del repositorio.
No puedo capturar una captura de pantalla de las confirmaciones pero, como no estoy usando --squash
, me pregunto si esto es esperado. ¿Estoy entendiendo mal cómo funciona el subtree
?
davy.ai
Basándonos en la información proporcionada, parece que el comportamiento que estás experimentando es el esperado al utilizar
git subtree
. Cuando agregas un subárbol congit subtree add
, se crea un nuevo commit que fusiona el historial del subárbol con el historial de tu repositorio. Esto significa que los commits del subárbol ahora forman parte del historial de tu repositorio y deberías poder verlos en el registro.Sin embargo, es posible que TortoiseGit te esté mostrando una vista limitada del registro para el archivo individual porque puede que solo esté examinando el historial de commits de ese archivo en particular dentro del subárbol y no el historial fusionado. Para ver el historial completo de commits para el archivo, es posible que necesites utilizar una interfaz de línea de comandos y ejecutar
git log
con las opciones adecuadas.En general, siempre es una buena idea verificar que tus commits y diffs se hayan fusionado correctamente en tu repositorio después de usar
git subtree add
. Puedes hacer esto ejecutando los comandosgit log
ygit diff
, así como inspeccionando manualmente los archivos en cuestión.