【发布时间】:2017-11-16 00:25:13
【问题描述】:
我无法确定子树是否是这里的答案;我真的只知道子模块(可能)不是。
- 我在
./parent有一个存储库(它在 GitHub 上是远程的) - 我想克隆一个远程仓库到
./parent/child - 我想跟踪我在子存储库中所做的更改作为父存储库的历史记录
- 我希望能够从子存储库的远程提取更改(并可能压缩它们)
- 我确实不需要需要将更改推送到孩子的遥控器;它将是仅拉动的。
我应该使用什么策略来管理这个?
用更简单的英语:我想将一个项目作为子项目包含在另一个项目中,并且我想根据需要修改子项目的来源,跟踪父项目中的更改(好像它只是另一个子目录)但仍然是能够将远程更改拉入子项(进行更新时)
也许是描述问题的另一种方式;这将是一个包含两个遥控器的存储库,一个是推/拉,另一个是仅拉取,其本地副本位于子目录中。
【问题讨论】:
-
看起来是subtree merge的好案例
-
我认为问题是我可能没有充分理解子树。我将重新阅读文档;顺便说一句,我有什么特别需要考虑的吗?
-
很难说,因为我不知道你不知道什么。基本上那里没有魔法,就像源存储库被移动到子目录然后合并一样。这是一个非常古老的技巧,它甚至用于 git 本身:github.com/git/git/tree/master/gitk-git
标签: git git-submodules git-subtree git-subrepo