¿Cómo vincular la carpeta de un repository git a otro repository?

Quiero crear un repository público para poner algunos files de muestra de mi repo principal (privado). ¿Hay alguna forma de vincular algunas carpetas de un repository git a otro repository git?

Entonces deberías usar submodules para esta tarea.

Los submodules son diferentes repositorys git bajo la misma raíz.
De esta forma puedes administrar 2 proyectos diferentes a nivel de carpeta dentro del repository raíz

Submodules permiten que los repositorys extranjeros se Submodules dentro de un subdirectory dedicado del tree fuente, siempre apuntando a una confirmación particular.


git submodule

Divida su gran proyecto en sub proyectos como lo hizo hasta ahora.
Ahora agregue cada proyecto secundario a su proyecto principal usando:

 git submodule add <url> 

Una vez que el proyecto se agrega a su repository, debe iniciarlo y actualizarlo.

 git submodule init git submodule update 

A partir de Git 1.8.2 nueva opción --remote fue agregado

 git submodule update --remote --merge 

obtendrá los últimos cambios de la stream ascendente en cada submodule, los merge them in y check out la última revisión del submodule.

Como los documentos lo describen:

--remote

Esta opción solo es válida para el command de actualización. En lugar de usar el SHA-1 grabado del superproyecto para actualizar el submodule, use el estado de la twig de seguimiento remoto del submodule.

Esto es equivalente a ejecutar git pull en cada submodule.


Sin embargo, ¿cómo presionaría una confirmación en el escenario de corrección de errores en C que afecta el código compartido con las capas padre?

De nuevo: al usar el submodule, colocarás tu código dentro de tu proyecto principal como parte de su contenido. La diferencia entre tenerlo localmente dentro de la carpeta o tenerlo como parte de un submodule es que en el submodule el contenido se gestiona (confirma) en un repository independiente diferente.


Esta es una ilustración del submodule: proyecto dentro de otro proyecto en el que cada proyecto es independiente.

enter image description here


git subtree

El subtree de Git le permite insert cualquier repository como un subdirectory de otro

Muy similar al submodule pero la principal diferencia es donde se administra su código. En los submodules, el contenido se coloca dentro de un repository separado y se gestiona allí, lo que le permite clonarlo a muchos otros repositorys también.

subtree es administrar el contenido como parte del proyecto raíz y no en un proyecto separado.

En lugar de anotar cómo configurarlo y comprender cómo usarlo, simplemente puede leer esta excelente publicación que lo explicará todo.

https://developer.atlassian.com/blog/2015/05/the-power-of-git-subtree/