如何将现有代码库分离为git子模块

时间:2016-12-06 17:17:22

标签: git dependencies repository git-submodules

我正在将所有旧的可用代码转换为git存储库。这是一个战术和战略问题。

所以我在Github上创建了一个名为HomeBase的新空白仓库(它现在是私有的)。然后我做了一个git clone将这个空白回购拉到我当地。

然后我复制了我的" Home Base"的所有文件。 PHP项目为客户端进入该文件夹,清理一些,使用SourceTree提交,并推送到Github上的主人。

现在,我想在项目中使用某些子文件夹(在几个项目中使用相同的子框架),并将它们转换为子模块和独立的git repos(同样,它们被其他项目使用相同,所以它们基本上是#39 ;第三方图书馆')。子文件夹包含从PHP实用工具到javascript库的任何内容。

我的问题是如何从HomeBase仓库中删除这些子文件夹,创建新的仓库并填充相应的文件,然后将它们重新链接到HomeBase仓库。我需要并感谢对这两个具体步骤以及策略的帮助。感谢。

1 个答案:

答案 0 :(得分:0)

所以你的问题需要遵循以下几个步骤:

  1. 删除子文件夹:git rm -r subfolder_name

  2. 转到Create a New Repository

  3. 并创建您想要的单独存储库。然后,您可以从GitHub将文件添加到此存储库(更容易学习曲线)。如果您想从CLI(命令行界面)执行此操作,请运行以下命令:

    2.a从您希望制作存储库的目录中运行以下代码

    git init
    git add *
    git commit -m 'first commit'
    git remote add origin git@github.com:username/repo_name.git
    git push -u origin master
    
    1. 转到将存储其他git子模块并运行git submodule add <path_to_other_repos>"的HomeBase仓库,并且您应该拥有所需的子模块,这些子模块具有指向其他存储库的链接。