Git子树 - 保持资源代码同步

时间:2012-10-30 15:32:12

标签: git sync git-submodules git-subtree

让我们调用2个项目A和B.这是每个项目的结构:

/
|- Foo
|   |- core
|   |    |- bar.txt
|   |    |- ...
|   |- specific
|          |- ...
|- ...

/ Foo / core / 的内容应该存在并且在A和B本地同步。这意味着,如果我在项目A中编辑bar.txt,我应该能够得到项目B中的更改,在同一台机器上,反之亦然。

我尝试创建一个名为“Core”的项目,并将其作为A和B的子模块。问题是,如果我编辑bar.txt,将其推送到远程,然后按A,显然我不能使用子模块更新获得项目B上的代码。这不是同一个项目。

我也试过了子树合并。问题是,“核心”并不是一个独立的项目,我无法像它那样开发它。它只是资源文件和更大的常见功能。因此,我希望能够在A和B中编辑我的bar.txt,在那里测试它作为这个项目的一部分,然后在另一个项目中以某种方式测试它以进行测试

关于Git Book,关于subtree merging的章节,据说:

  

您可以在主分支的rack子目录中进行更改,然后将它们合并到rack_branch分支中,以便将它们提交给维护者或将其推送到上游。

但是没有解释我该怎么做,也不知道如何保持我的2个本地文件夹同步。

1 个答案:

答案 0 :(得分:0)

子模块可以工作。在处理项目A时对核心项目进行更改时,可以推送其中的更改。要更新项目B中的核心,您只需在项目B中的Core中进行更改。将CD更改为项目B,git add -A && git commit -m "updated core"将项目B更新为最新的核心。