将站点模块分离到另一个git项目

时间:2015-02-11 16:02:06

标签: git

我有一个Zend Framework网站,其结构如下:

  • 应用
    • 控制器
    • 形式
    • 模块
      • separateMeModule
      • API
    • ...
  • 数据
  • 文档
  • 文库
  • 公共
  • ...

对于版本控制,我们使用git。目前我们有2个分支 - 主人和发展。

我想要做的是分离模块" separateMeModule"进入另一个项目(并为它创建单独的git存储库)并将其从原始项目中删除。但我想在新的分离项目中保存这两个分支(包含所有更改历史记录)。最简单的方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以使用git subtree split命令隔离存储库中特定目录的历史记录。例如,如果您要运行:

git subtree split --prefix modules/separateModule -b separateModule 

这将创建一个仅包含该存储库历史记录的新分支separateModule。然后,您就可以将其推送到专用存储库中。例如,创建一个新的存储库:

git init --bare /path/to/separateModule.git

将新的separateModule分支推送到新存储库的master分支:

git checkout separateModule
git push /path/to/separateModule.git separateModule:master

请注意,我们在任何时候都没有修改现有存储库的历史记录,您可以安全地删除我们使用git subtree split创建的分支:

git checkout master
git branch -D separateModule