2012-01-17 21 views
18

Tengo un proyecto de Xcode que tiene Git Source Control. En una carpeta de Libraries he clonado otros ocho proyectos de Git desde GitHub. Están ubicados dentro de mi propio repositorio de Git y he agregado todas estas bibliotecas a mi git en una confirmación.Git: Cómo manejar las bibliotecas de git en el proyecto

En lugar de tener el código de todas estas bibliotecas de git en mi repositorio, ¿hay alguna manera de dejar que git descargue su código de su repositorio cuando hago una copia de mi repositorio? ¿O es normal incluir otros repositorios git dentro de un proyecto?

+0

http://stackoverflow.com/questions/2140985/setup-a-git-external-for-remote- repo – tobiasbayer

Respuesta

24

Claro hacer lo siguiente:

  1. Retire el tercero-partido-carpeta que pudiera haber añadido ya
  2. Abra su terminal y ejecutar el siguientes comandos

    cd /path/to/your/main/repo 
    git submodule add [email protected]:someuser/somerepo.git somerepo 
    git commit -m "Added submodules" 
    
  3. Ahora, en lugar de copiar los archivos que tendrá una referencia al otro repositorio en su proyecto:

    http://i.minus.com/jcphKnFxLexk8.png

Editar:

Ahora bien, si desea actualizar el submódulo de una más reciente commit puede hacer lo siguiente:

cd somerepo 
git pull # You can also checkout a branch/tag etc. 
cd .. 
git add somerepo 
git commit -m "Telling the main repo to update the reference to the referenced repo" 
+0

Gracias. ¿No podría usar esto en su lugar 'git submodule add https://github.com/AlanQuatermain/AQGridView.git Libraries/AQGridView' en lugar de' [email protected]: ...'? – dhrm

+0

¿Cómo puedo actualizar estos submódulos? ¿Se sacan automáticamente cuando retiro mi repositorio o tengo que ir dentro de su carpeta y hacer un 'git pull'? – dhrm

+0

@DennisMadsen Sí, puede hacer un jalón de arrastre que sí lleva a cabo cualquier cambio en 'somerepo'; sin embargo, también debe indicarle a su repositorio principal que actualice la referencia. Ver mi publicación actualizada. Por cierto: encuentro que los submódulos son bastante útiles ya que no es necesario duplicar el código de los repositorios, que ya están disponibles para usted a través de git. – Besi

Cuestiones relacionadas