我有一个Zend Framework网站,其结构如下:
对于版本控制,我们使用git。目前我们有2个分支 - 主人和发展。
我想要做的是分离模块" separateMeModule"进入另一个项目(并为它创建单独的git存储库)并将其从原始项目中删除。但我想在新的分离项目中保存这两个分支(包含所有更改历史记录)。最简单的方法是什么?
答案 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