two tortoise tag subversion hacer entre diferencia create branches svn git

tortoise - svn branches tags trunk



SVN: ¿equivalente externo en Git? (5)

Como mencioné en " Actualización de la nueva versión del submódulo de Git ", puede lograr la misma característica externa de SVN con los submódulos de Git 1.8.2:

git config -f .gitmodules submodule.<path>.branch <branch>

Esto es suficiente para que un submódulo siga una bifurcación (como en la última confirmación de una rama remota de un repositorio de subida de submódulos). Todo lo que necesitas hacer es un:

git submodule update --remote

Eso actualizará el submódulo.

Más detalles están en " git submodule tracking latest ".

Para convertir un submódulo existente en uno que rastrea una sucursal : vea todos los pasos en " Submódulos de Git: especifique una sucursal / etiqueta ".

Tengo dos proyectos SVN en uso desde otro repositorio SVN usando svn:externals .

¿Cómo puedo tener la misma estructura de disposición de repositorio en Git?


Deberías mirar los submódulos de Git . Debe permitir casi exactamente lo que estás buscando.


Git tiene dos enfoques similares a, pero no exactamente equivalentes a svn: externals:

  • Subtree merges inserta el código del proyecto externo en un subdirectorio separado dentro de su repositorio. Esto tiene un proceso detallado para configurar y luego es muy fácil para otros usuarios, ya que se incluye automáticamente cuando el repositorio se retira o se clona. Esta puede ser una forma conveniente de incluir una dependencia en su proyecto.
    Es fácil extraer los cambios del otro proyecto, pero es complicado devolver los cambios. Y si el otro proyecto tiene que fusionarse con su código, los historiales del proyecto se fusionan y los dos proyectos se convierten efectivamente en uno.

  • Los submódulos de Git ( manual ) se vinculan a un compromiso particular en el repositorio de otro proyecto, al igual que svn: externals con un argumento -r . Los submódulos son fáciles de configurar, pero todos los usuarios tienen que administrar los submódulos, que no se incluyen automáticamente en las cajas (o clones).
    Aunque es fácil enviar los cambios al otro proyecto, hacerlo puede causar problemas si el repositorio ha cambiado. Por lo tanto, generalmente no es apropiado enviar los cambios a un proyecto que se encuentra en desarrollo activo.



Para la última versión de Git, sugeriría leer sobre los submódulos de Git en la documentación oficial de Git.