Quiero crear un nuevo repositorio git de una carpeta en un repositorio git existente. Quiero que el historial se conserve en el nuevo repositorio. ¿Cómo creo este nuevo repositorio git?¿Cómo creo un nuevo repositorio git desde una carpeta en un repositorio git existente?
Respuesta
Puede clonarlo, y luego aplicar en el clon una rama de filtro para dividir ese repositorio, extrayendo solo el directorio que desee (con su historial completo).
Ver Detach subdirectory into separate Git repository
Nota del git clone --no-hardlinks /XYZ /ABC
utilizado durante la etapa de clonación:
El interruptor
--no-hardlinks
hace git utilizar copias de archivo real en lugar de un enlace duro al clonar un repositorio local.
Puede clonarlo y guardar los archivos que desea; la historia será preservada.
Suponiendo que solo desea mantener el subdirectorio como un proyecto separado: puede usar git filter-branch
para eso.
- Crear una nueva rama
- Definir un "filtro de árbol" que reordena Una copia de la manera deseada, idealmente como una secuencia de comandos independiente
- Run
git filter-branch --tree-filter=/path/to/script thebranch
Ahora tiene una rama separada que no está relacionada con la secuencia de desarrollo normal, que contiene solo el subdirectorio. Quien clona la nueva rama obtiene solo el historial del subproyecto.
- 1. Crear un nuevo repositorio git desde una sucursal local existente
- 2. ¿Cómo creo un repositorio git remoto en EGit y lo vinculo a un proyecto Eclipse existente?
- 3. Crear una carpeta existente en un repositorio
- 4. Crear un repositorio git que contenga otro repositorio git
- 5. Reparar un repositorio git roto - cómo tener un nuevo comienzo
- 6. ¿Cómo creo un repositorio git en mi hostgator compartido?
- 7. Bzr: Crear un repositorio compartido desde un repositorio independiente existente
- 8. ¿Cómo crear un nuevo repositorio en Github usando git bash?
- 9. Mover un repositorio de git
- 10. Leyendo un repositorio de Git, sin Git
- 11. Cómo importo un módulo CVS existente en un subdirectorio de un repositorio git existente
- 12. Añadir svn repo al repositorio git existente?
- 13. ¿Cómo trabajo con un repositorio git dentro de otro repositorio?
- 14. svn-checkout desde un repositorio de GIT
- 15. Creación de repositorio central en Git desde el repositorio local existente (en Windows)
- 16. "No es un repositorio git"
- 17. Git "no parece ser un repositorio git"
- 18. Publicar un repositorio "git svn"
- 19. Git: Cómo obtener una instantánea de un repositorio git
- 20. ¿Anonimizar un repositorio git local?
- 21. Empujando el repositorio git existente a gitolite
- 22. ¿Cómo descargo un commit específico de git desde un repositorio?
- 23. Configuraciones de configuración predeterminadas para un nuevo repositorio de git?
- 24. Cómo reiniciar un repositorio git-svn
- 25. ¿Cómo elimino un repositorio local en git?
- 26. Git: ¿cómo excluir una subcarpeta en un repositorio?
- 27. Aplicar las reglas de git .gitignore a un repositorio existente
- 28. Reutilización una parte de un repositorio Git
- 29. ¿Cómo desinstalar un repositorio git usando pip?
- 30. Cómo clonar selectivamente un repositorio git
No necesita definir un filtro de árbol (personalizado) aquí. El filtro de subdirectorio integrado hace exactamente esto, como se describe en la respuesta vinculada a en [respuesta de VonC] (http://stackoverflow.com/questions/5421386/how-do-i-create-a-new-git-repository -from-a-folder-in-an-existing-git-repository/5421581 # 5421581). Tampoco desea hacer esto en una nueva rama en el mismo repositorio, sino en clones separados. Si un repositorio contenía tanto el subdirectorio como el proyecto completo en sucursales separadas, un clon inicial obtendría ambos, creando ramas de seguimiento remoto para cada uno. ¡Antieconómico! – Cascabel