我有一个关于子树的问题。我有一个项目,我使用lib,我已使用子树机制添加。在此之前,我总是使用子模块,如果你知道自己在做什么,这些子模块效果很好。但我想尝试不同项目的子树。
因此,子树的工作也很好但我的问题是,当我将我的仓库推送到github或bitbucket时 - 并不重要,而其他人克隆了回购...子树的远程信息丢失了。
所以,如果我通过子树添加了很多lib,如果我丢失了我的主人,那么我必须手动添加所有子树的远程...或者这里的正确工作流程是什么?
我一直在想如何以这种方式管理linux,因为我知道linux是从很多子树中构建的。
非常感谢答案 0 :(得分:0)
这是Bitbucket的一个主要缺点(我认为是github)。您的链接未被推送到Bitbucket的原因是因为子树链接存储在存储库之外。
例如,在Sourcetree中,子树链接存储在.git/sourcetreeconfig
<RepositoryCustomSettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<AutoRefresh>true</AutoRefresh>
<AutoRefreshRemotes>true</AutoRefreshRemotes>
<DraftCommitMsg />
<IncomingSavedCount>0</IncomingSavedCount>
<LastCheckedRemotes>2017-11-29T10:37:38.3041741-05:00</LastCheckedRemotes>
<LastUsedView>FileStatus</LastUsedView>
<LogBranchFilterIndex>0</LogBranchFilterIndex>
<OutgoingSavedCount>0</OutgoingSavedCount>
<SidebarExpandedItems>
<string>File Status</string>
<string>Branches</string>
<string>Remotes</string>
</SidebarExpandedItems>
<SidebarWidth>210</SidebarWidth>
<SubtreeLinks>
<SubtreeLink>
<SourcePathUrl>http://URL_TO_YOUR_BITBUCKET/scm/l20/00-0000-xx-eclipseutils.git</SourcePathUrl>
<Prefix>00-0000-xx-eclipseutils</Prefix>
<Refspec>master</Refspec>
</SubtreeLink>
</SubtreeLinks>
</RepositoryCustomSettings>
但是,此文件由Sourcetree工具维护,而不是实际存储在存储库本身中。
可能的解决方法是将文件.git/sourcetreeconfig
存储在仓库中(例如_sourcetreeconfig
),并在结帐时将文件复制到.git。
真的很遗憾,因为子树确实解决了Bitbucket的很多组织缺点。