Estoy dividiendo un árbol fuente grande en dos componentes separados y un submódulo compartido. Para prepararme para esta división, primero moví las cosas compartidas a un único directorio "común", actualicé todas las referencias y realicé una confirmación. Hasta aquí todo bien. Ahora me gustaría extraer ese directorio en un submódulo.Extrae el subdirectorio git mientras conservas el historial WITH renombra
Normalmente me gustaría hacer esto con
git filter-branch --subdirectory-filter
Pero en este caso, toda la historia interesante ocurrió fuera de ese subdirectorio, por lo que la historia se pierde.
Entiendo que no tiene sentido guardar el historial completo, ya que eso no estaría filtrando ningún dato en absoluto. Pero realmente no estoy buscando la posibilidad de retroceder en el tiempo y construir, solo quiero poder ver las confirmaciones de cada archivo.
¿Hay alguna forma de mantener el comportamiento de la rama de filtro mientras se mantiene el historial de los archivos individuales?
Todo eso tiene sentido para mí, pero al menos en principio puedo imaginar tomar el conjunto actual de archivos en un directorio y rastrear el historial de compromisos para cada uno, contando los cambios de nombre. De esta forma, cada objeto de compromiso implica o no los archivos en un subdirectorio. Aquellos que no los involucren podrían descartarse, y los que lo hagan podrían reescribirse para dejar de lado los otros archivos. No me importa tener un compromiso de movimiento en la punta de mi historia, solo quiero mantener todos los cambios en el camino. –
Si tuviera que 'git checkout' uno de los commits de" historia anterior "en su submódulo, ¿qué haría' git'? Si el archivo solía estar "arriba" de lo que ahora es el directorio de nivel superior del repositorio, no hay una buena manera de que Git lo maneje. – Amber
Me quemé un montón de tiempo en esto en vano ... Aún así creo que puede ser hecho por alguien de suficiente inteligencia. –