将Git子目录转换为子模块

时间:2019-11-18 17:10:03

标签: git git-submodules git-cherry-pick

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

我有以下存储库:

REPO1:

ROOT_OF_SITE1/

REPO2:

ROOT/
    /SITE1/
    /SITE2/
    /SITE3/

SITE2和SITE1共享相同的代码库,只是SITE1前面有一些提交,但由于路径不同,因此无法从REPO1到REPO2中的SITE1挑选从SITE1提交的提交。

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

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

不幸的是,Git扩展Git客户端目前不支持子树。

1 个答案:

答案 0 :(得分:1)

我将在SITE1上使用一个存储库,并使用git subtree拆分其余站点。您可以将您的仓库划分为不同的分支,并用干净的树来组织几个模块:

git subtree split --prefix=site2 -b site2

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

相关问题