将 Git 个子目录转换为子模块

Convert Git subdirectories into submodules

使用 Windows 进行开发,Debian 用于服务器和存储库,Git 扩展作为 Git 客户端。

我有以下回购协议:

REPO1:

ROOT_OF_SITE1/

REPO2:

ROOT/
    /SITE1/
    /SITE2/
    /SITE3/

SITE2 和 SITE1 共享相同的代码库,只是 SITE1 提前了几个提交,但是由于路径不同,无法从 REPO1 到 REPO2 中的 SITE1 从 SITE1 cherry pick 提交。

我想解决方案之一是将 SITE2 子目录转换为 Git 子模块,这样我就可以从 SITE1 中挑选提交。

但是每次我使用 git 子模块时,我都会在 Git 扩展中遇到问题。

很遗憾,Git 扩展 Git 客户端目前不支持子树。

我会使用 SITE1 的一个存储库,我会使用 git subtree 拆分其余站点。你可以将你的 repo 划分到不同的分支中,用一个非常干净的树来组织几个模块:

git subtree split --prefix=site2 -b site2

检查 this post 了解更多信息。然后您可以重新构建树,留下非常好的 git 历史记录。