让我们调用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个本地文件夹同步。
答案 0 :(得分:0)
子模块可以工作。在处理项目A时对核心项目进行更改时,可以推送其中的更改。要更新项目B中的核心,您只需在项目B中的Core中进行更改。将CD更改为项目B,git add -A && git commit -m "updated core"
将项目B更新为最新的核心。