【发布时间】:2023-03-24 00:30:01
【问题描述】:
我找到了几个同时使用过滤器分支和子树的简单示例,但它们总是只是移动 1 个目录。我想采取以下回购:
/
Project1.sln
Project2.sln
Source/
CommonLib.Data/
CommonLib.Web/
Project1.Data/
Project1.Web/
Project1.Other/
Project2.Data/
Project2.Web/
然后将内容移到它们自己的存储库中,结构如下:
# CommonRepo
/
CommonLib.Data/
CommonLib.Web/
# Project1Repo
/
Project1.sln
Project1.Data/
Project1.Web/
Project1.Other/
# Project2Repo
/
Project2.sln
Project2.Data/
Project2.Web/
同时维护整个历史记录。更复杂的是,每个项目对应的原始 repo 有 1 个或多个分支,因此其他项目引用的 CommonLib 版本可能略有不同。
我想使用 git subtree add 在每个新存储库中以正确的标签/修订版添加对 CommonLib 的引用,但首先我需要一种方法将多个目录一次拆分到它们自己的位置.
git subtree split -P 似乎只需要 1 个目录,而且我也无法让 filter-branch 获取倍数。我在一个 windows 盒子上,所以没有设置所有的脚本细节来让这更容易。
有什么建议吗?
【问题讨论】:
标签: git git-subtree git-filter-branch