Git – Subárbol

El subárbol de Git es el reemplazo más común para el submódulo de Git. Un subárbol de Git es una réplica de un repositorio de Git que se ha arrastrado al repositorio principal. Un submódulo de Git es una referencia a una confirmación particular en un repositorio diferente. Los subárboles de Git, que se introdujeron por primera vez en Git 1.7.11, lo ayudan a hacer una copia de cualquier repositorio en un subdirectorio de otro. 

Ventajas de los subárboles

  1. Compatible con la versión anterior de Git. También es compatible con versiones anteriores a la 1.5.
  2. La gestión del flujo de trabajo es sencilla.
  3. Una vez completado el superproyecto, habrá un código de subproyecto disponible.
  4. No necesitas nuevos conocimientos de Git.
  5. Modificación de contenido sin necesidad de un repo diferente de la dependencia.

Desventajas de los subárboles

  1. No es inmediatamente obvio que se use un subárbol para construir el repositorio principal.
  2. Los subárboles de su proyecto son difíciles de enumerar.
  3. No puede, al menos no simplemente, enumerar los repositorios remotos de los subárboles.
  4. Cuando cambia el repositorio principal con confirmaciones de subárbol, luego envía el subárbol a su servidor principal y luego extrae el subárbol, los registros pueden ser un poco engañosos.

git subtree

Es uno de los diversos métodos para inyectar y administrar dependencias de proyectos en proyectos Git. Las dependencias externas se almacenan en confirmaciones regulares. Los subárboles en Git brindan puntos de integración limpios, lo que facilita la reversión. No verá un subárbol cuando use el tutorial de subárboles de GitHub para crear un archivo de configuración .gittrees en su directorio local. Los subárboles parecen carpetas generales, pero en realidad son copias de los repositorios secundarios, por lo que es imposible distinguirlos. git subtree te permite anidar un repositorio como un subdirectorio dentro de otro. Es una de las diversas opciones para administrar dependencias de proyectos en proyectos de Git. Agrega un subárbol a un repositorio existente donde el subárbol es una referencia a otra URL del repositorio y rama/etiqueta cuando desea utilizarlo. No es simplemente una referencia a un repositorio remoto; 

Cuando prepara y confirma archivos para el repositorio principal, también agregará todos los archivos remotos. No es necesario vincular a otro repositorio para recibir el componente del subárbol porque la verificación del subárbol obtendrá todos los archivos de una sola vez. Después de usar los submódulos de git por un tiempo, notará que el subárbol de git soluciona muchos de los problemas que causa el submódulo de git. Al igual que con todo lo relacionado con Git, hay una curva de aprendizaje para aprovechar al máximo la capacidad. 

Suponga que desea utilizar un solo proyecto dentro de un repositorio como proyecto secundario. Copiar el proyecto al repositorio principal es el procedimiento estándar. Para reutilizar un proyecto secundario en muchos repositorios principales, no sería práctico clonar el proyecto secundario en cada uno de los principales y realizar modificaciones en cada uno de ellos cada vez que se actualice. Esto daría lugar a redundancia e incoherencia en los repositorios principales, lo que dificultaría la actualización y el mantenimiento del proyecto secundario. 

Debido a la versión del subárbol de Git con el. El archivo de configuración de gittrees no está incluido en el paquete habitual de Git, debe descargar git-subtree del subdirectorio /contrib/subtree del repositorio fuente de Git .

Puede replicar cualquier repositorio con subárboles como cualquier otro repositorio general; sin embargo, llevará más tiempo porque el repositorio principal tiene copias completas del repositorio secundario. Para usar subárboles de Git en sus repositorios, ejecute los siguientes comandos.

Agregar un subárbol a un repositorio principal

Para traer un nuevo subárbol a un repositorio principal, primero lo agrega de forma remota, luego usa el comando agregar subárbol, que se ve así:

$ git remote add remote-name <URL to Git repo>
$ git subtree add --prefix=folder/ remote-name <URL to Git repo> subtree-branchname

El registro de confirmación de todo el proyecto secundario se fusiona con el repositorio principal.

Empujar y extraer cambios hacia y desde el subárbol

$ git subtree push-all

o el siguiente comando realiza lo mismo de la siguiente manera: 

$ git subtree pull-all

Los submódulos de Git tienen un tamaño de repositorio menor que los subárboles de Git, ya que solo apuntan a una confirmación específica en el proyecto secundario, mientras que los subárboles de Git contienen el proyecto secundario completo y su historial. Los submódulos en Git deben ser accesibles desde un servidor, mientras que los subárboles no. El desarrollo basado en componentes utiliza submódulos de Git, mientras que el desarrollo basado en sistemas utiliza subárboles de Git.

Un subárbol de Git no es lo mismo que un submódulo de Git. Hay varias limitaciones sobre dónde se puede usar cada uno. Si posee un repositorio externo al que probablemente enviará código, use el submódulo Git porque es más fácil de enviar. Utilice el subárbol de Git si hay un código de terceros que no está seguro de insertar porque es más fácil de extraer. Puede agregar otro repositorio a este repositorio de esta manera:

  • Especifique que desea agregar un subárbol.
  • Indique que desea agregar un subárbol.
  • Especifique el directorio local de prefijo donde desea que se extraiga el subárbol.
  • Especifique la URL del repositorio remoto [para el subárbol que se está arrastrando].
  • Se debe especificar la rama remota [del subárbol que se extrae].
  • Especifique que desea aplastar todos los registros [del subárbol] del repositorio remoto.

git subtree add –prefix {directorio local al que se extrae} {URL de repositorio remoto} {rama remota} –squash

Ejemplo: asomarse 

git subtree agregar –prefijo subtreeDirectory https://github.com/microsoft/hermes-windows master –squash

Esto duplicará https://github.com/microsoft/hermes-windows en el directorio subtreeDirectory.

Reemplace add con pull: si deseamos extraer cada nueva contribución al subárbol desde el principal.

git subtree pull —prefijo subtreeDirectory https://github.com/microsoft/hermes-windows master —squash 

Publicación traducida automáticamente

Artículo escrito por deathmukh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *