我正在尝试使用git的子树合并策略,其中我想要合并的子目录相当深入嵌套 - 目前有四个级别.
我按照这里的指示将模块存储库添加为远程,运行git read-tree以将远程代码放入我的本地存储库中的子目录中,并提交这些更改.
当我尝试将更改从远程转移到我的主项目的主分支时,我的问题出现了.上面的页面中的步骤5建议使用-s子树开关进行git pull.当我的子目录是一个,两个或三个级别深,但不是四个时,这对我来说正常.
这是将2级深度合并到子目录中的结果.您可以看到sites/all /中的README文件已正确更新.在我的远程仓库中,README位于根目录中.
$ git pull -s subtree REMOTE_REPO master
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 2), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From /path/to/my/REMOTE_REPO
* branch master -> FETCH_HEAD
Merge made by subtree.
sites/all/README | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
Run Code Online (Sandbox Code Playgroud)
这里的子目录是3级深度:sites/all/modules /.这也很好,拉动更改并更新文件.
$ git pull -s subtree REMOTE_REPO master
remote: Counting objects: 5, done.
remote: …Run Code Online (Sandbox Code Playgroud)