¿Es posible agregar un tree existente al índice?

¿Por qué estoy haciendo esto? Hay una carpeta en un repository separado con la que quiero sincronizar de la manera más simple posible.

Basado en el capítulo Git Internals Git Objects I estaba bajo la printing de que las carpetas son solo subtreees en git. Y asumió que sería posible crear un directory que apunta a un tree ya existente.

Esto es lo que he intentado:

git update-index --add --cacheinfo 040000 b5fd8e9305 rc 

b5fd8e9305 es id del tree. Este enfoque solo creó el directory vacío. Entonces la pregunta sería: ¿ es posible agregar un subtree a la T usando el command git update-cache?


También probé el método descrito en la fusión de subtítulos de Git: artículo de plomería de bajo nivel . Funciona bien, aunque todavía hay dudas de por qué update-index no funcionó como esperaba.

Si bien los objects de tree pueden contener más treees, el índice es especial y normalmente no tiene (references) objects de tree en él.

Es posible introducir treees en él, pero no se comportan bien (pueden cambiar mágicamente a inputs de gitlink ).

Cuando git realiza una nueva confirmación a partir de un índice, construye cada nuevo object de tree sobre la marcha. Es decir, el índice contiene los ID (SHA-1) de blobs ya agregados al repository en este punto, y los nombres de ruta en los que deben conservarse; y git commit -o más precisamente, git write-tree -construye el set de treees necesarios en function de los nombres de ruta (y el bit del modo +x o -x ) en el índice. El código de compromiso puede hacer el compromiso, que se refiere al tree de nivel superior.

(La conclusión, por así decirlo, es que necesita actualizar el índice con cada identificador de blob, en lugar de con el tree).