我在 SVN 中有一个项目正在迁移到 Git。该项目由一个“核心”产品(在主干下)组成,然后在同一个存储库中分支,并用作起点为我们推出产品的每个客户进行定制。
在我看来,这些并不是真正的分支,因为它们永远不会被 merge 回主干,而且它们最好生活在自己的存储库中,并将它们的历史链接回“主干”存储库和能够在需要时从主干中提取更改(当然可以使用 git 轻松完成)。
让事情稍微复杂一点的是,一个客户拥有他们自己项目的一个分支,这是一个“真正的”分支,因为它将在某个时间点 merge 回该客户的主分支。
为了让事情更清楚,SVN 结构如下:
- “项目”存储库
- 中继
- 分支机构
- Client1(从 Trunk v100 分支)
- Client2(从 Trunk v150 分支)
- Client2-Branch(从 Client2 v200 分支)
- Client3(从 Trunk v150 分支)
我想得到的结构是
“项目”存储库
Client1 存储库(从 SHA123 fork )
Client2 存储库(从 SHA456 fork )
- Client2-Branch(从 SHA456789 分支)
Client3 存储库(从 SHA789 fork )
谁能推荐一个好方法来做到这一点 - 我不是 Git 新手,我知道 filter-branch,我只是不确定我应该采取什么方法来获得这个结构并保留尽可能多的历史记录尽可能。
谢谢
最佳答案
如果您真的想这样做,请克隆存储库,并删除每个分支中的无关分支。
不过现在的情况好像还好。您确定永远不想从一个存储库中挑选补丁到另一个存储库吗?
关于git - 将一个 Git 存储库拆分为多个 - 分支成为分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3996029/