1

让我们调用 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 的关于子树合并的章节中,说:

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

但是没有解释我应该如何做,也没有解释我如何让我的 2 个本地文件夹保持同步。

4

1 回答 1

0

子模块将起作用。当您在处理项目 A 时对核心项目进行更改时,您会在这两个项目中推送更改。要更新项目 B 中的核心,您只需将项目 B 中的核心中的更改拉取。CD 到项目 B,git add -A && git commit -m "updated core"以将项目 B 更新到最新的核心。

于 2012-10-30T17:33:14.813 回答