Git 是否可以将现有树添加到索引中

Git 是否可以将现有树添加到索引中,git,Git,我为什么要这样做?在单独的存储库中有一个文件夹,我想以最简单的方式与之同步 基于第一章,我的印象是文件夹只是git中的子树。并假设可以创建指向现有树的目录 这就是我尝试过的: git update-index --add --cacheinfo 040000 b5fd8e9305 rc b5fd8e9305是树的id。这种方法只创建了空目录。所以问题是:是否可以使用git update cache命令将子树添加到tee? 我还尝试了文章中描述的方法。它工作得很好,但是仍然有问题为什么更新索引

我为什么要这样做?在单独的存储库中有一个文件夹,我想以最简单的方式与之同步

基于第一章,我的印象是文件夹只是git中的子树。并假设可以创建指向现有树的目录

这就是我尝试过的:

git update-index --add --cacheinfo 040000 b5fd8e9305 rc
b5fd8e9305
是树的id。这种方法只创建了空目录。所以问题是:是否可以使用git update cache命令将子树添加到tee?


我还尝试了文章中描述的方法。它工作得很好,但是仍然有问题为什么
更新索引
没有像我预期的那样工作。

虽然树对象可以包含更多的树,但索引是特殊的,通常没有(引用)树对象

可以把树推进去,但它们表现不好(可以)

当git从索引进行新提交时,它会动态构造每个新的树对象。也就是说,索引包含此时已经添加到存储库中的blob的id(SHA-1)以及它们应该保留的路径名;和
git commit
——或者更准确地说,——基于索引中的路径名(和
+x
-x
模式位)构造所需的树集。然后,提交代码可以自己进行提交,它引用顶级树

(事实上,底线是您需要使用每个blob ID更新索引,而不是使用树。)