在存储库根目录上合并的git子树(w.git flow)
我们有一个基于git flow的存储库,其中我们在开发分支上添加了一个外部库作为子树(使用Atlassian SourceTree的git子树)在存储库根目录上合并的git子树(w.git flow),git,git-flow,git-subtree,Git,Git Flow,Git Subtree,我们有一个基于git flow的存储库,其中我们在开发分支上添加了一个外部库作为子树(使用Atlassian SourceTree的git子树) Project/ Library/ X/ Y/ Z/ 后来,我们做了一个git flow发行版,将develop的更改合并到master(发行版) 问题是,在签出master时,库的内容被放在存储库的根上,而不是放在库中,就像它在合并过程中丢失了git子树前缀一样 Project/ X/ Y/ Z/ 知道出了
Project/
Library/
X/
Y/
Z/
后来,我们做了一个git flow发行版,将develop的更改合并到master(发行版)
问题是,在签出master时,库的内容被放在存储库的根上,而不是放在库中,就像它在合并过程中丢失了git子树
前缀一样
Project/
X/
Y/
Z/
知道出了什么问题吗?子树本身在自己的分支上有自己的根目录。尤其见: 您希望将机架项目作为一个整体拉入主项目 子目录。您可以使用Git读取树在Git中实现这一点。你会学到的 更多关于阅读树和它的朋友在第9章,但现在知道 它将一个分支的根树读入当前暂存 区域和工作目录。你刚回到你的主人身边 分支,然后将rack分支拉入 主要项目的主分支: $git读取树--前缀=机架/-u机架\分支
您确定它是子文件夹中的第一个吗?如果您从旧主控形状创建一个新分支并再次尝试整个操作,会发生什么情况?是否再次发生?是的。在开发中,分支位于子文件夹上。git流发布过程似乎没有保留子树指针。这有点愚蠢,但你的.git文件夹在哪里?你是如何“将外部库添加为子树”的?文件拷贝,git克隆,git子模块?我也有过同样的经历。使用git子树的步骤如文档所示
git远程添加$PROJECT\u NAME$git\u URI;git子树add--prefix=$PROJECT\u PATH$PROJECT\u NAME$PROJECT\u BRANCH
到目前为止还不错。然而,下一次我运行git pull#(没有明确的远程或分支)
时,第二个远程回购的内容也被拉入了我的主项目根目录中。我怀疑这与git远程跟踪选项有关,因为任何远程设备都被认为是有效的对等设备,而且。。。他们都被拉了。我的git配置是fetch=+refs/heads/*:refs/remotes/$PROJECT\u NAME/*
,我猜就是这样。这描述了子树合并策略,我使用的是git子树(请参阅)。