2009-09-10 48 views
5

He creado un repositorio git al descubierto (vamos a llamarlo repo # 1) y lo hemos clonado.Crear un repositorio git que contenga otro repositorio git

  • En el clon (repo # 2) he creado varias carpetas, una de las cuales he decidido hacer un git repo (repositorio # 3).
  • Cuando me comprometo con el repositorio n. ° 2, todo se ejecuta como se esperaba, excepto que el repositorio n. ° 3 se ignora (la carpeta .git, los archivos se comprometen).

¿Cómo puedo añadir repo repo # 3 a # 2, de modo que cuando empujo repo repo # 2 a # 1, puedo hacer un clon independiente de recompra # 1 en el que también puedo acceder al historial, etc. de repo # 3?

En otras palabras. ¿Cómo creo un repositorio git que contiene otro repositorio git?

Respuesta

3

No debe hacer eso. Los metadatos en .git/se cambian durante la vida útil del repositorio y los cambios no significan necesariamente "cambios en el contenido" que se deben cometer: el archivo git repack simple cambia los archivos en .git pero los cambios no se deben confirmar. ¿Por qué quieres hacer eso?

+0

estoy usando el repositorio principal (# 2) para facilitar copia de seguridad de las carpetas que contiene el cual incluye repo # 3. Todo está almacenado en una unidad USB y de esta manera puedo enviar fácilmente una copia de seguridad de todo a mi ubicación de respaldo (repositorio # 1). Parece que tendré que copiar manualmente las carpetas para hacer una copia de seguridad por el momento. –

+0

Si todo lo que desea es solo una copia de seguridad de todos los repositorios (y copias de trabajo), entonces puede usar algo que no sepa nada acerca de la estructura, por ejemplo mercurial o bazaar. Como wRAR dijo que agregaría muchas cosas que no necesita, pero si solo quiere una copia de seguridad, entonces podría estar bien. Pero también podría simplemente escribir un script que recorra todos los repositorios de su dispositivo y lo empuje hacia el servidor. –

2

ver git submodule

yo nunca he utilizado, por lo que todo lo que puedo hacer es enviar un enlace ...

2

No soy un profesional GIT cualquier medio, pero creo que se está refiriendo a los submódulos de Git

git submodule --help 
0

En su carpeta raíz del repositorio de contenedores, simplemente:

git submodule add https://github.com/yourusername/containedrepo.git containedrepo 

Esto le clonar el containedrepo/containedrepo dentro del directorio. A partir de ahora, no debe realizar cambios en el directorio /containedrepo, sino realizar cambios en el containedrepo y luego extraerlos. Cuando extrae el repositorio principal de contenedores, también extraerá todos los repositorios de submódulos, p. containedrepo.git.

Aquí hay un gran tutorial: https://github.com/NebuPookins/git-submodule-tutorial

Cuestiones relacionadas