我有一个包含内容的 git 存储库 A:
<shared files dir>/
sharedFile1
sharedFile2
而且我有额外的 git 存储库 B 和 2 个项目,每个项目都必须使用存储库 A 中的共享文件。因此文件结构将类似于:
Project_X
<shared files dir>/
sharedFile1
sharedFile2
<project X dirs>
Project_Y
<shared files dir>/
sharedFile1
sharedFile2
<project Y dirs>
我希望仅在存储库 A 中更新共享文件,并且我需要允许 project_X 和 Project_Y 轻松获取这些更新。
实际上,符号链接可能是我需要的确切解决方案,但不幸的是,我使用的文件系统不支持它。
Git 子树也看起来是合适的解决方案,但问题是我找不到如何将同一分支的子树合并到同一存储库中的 2 个位置。我成功创建了我需要的文件结构:
git read-tree --prefix=Project_X/shared_files_dir/ -u shared_remote_branch
git read-tree --prefix=Project_Y/shared_files_dir/ -u shared_remote_branch
创建所需的文件结构(正如我在问题顶部所描述的那样),但尝试合并更新只会给我创建的最后一个子树带来更改:
git merge --squash -s subtree --no-commit shared_remote_branch
仅使用来自 shared_remote_branch 的更改更新 Project_Y/shared_files_dir/,而不是 Project_X/shared_files_dir/。
我会很感激任何想法。关于如何将子树从一个分支合并到 2 个位置 (Project_X/shared_files_dir/) 和 (Project_Y/shared_files_dir/) 或如何在任何其他方法中进行合并