将功能复杂的版本库拆分为功能单一的版本库并保存所有相关提交信息
1 2 3 4 5 6 7 8 9 10 11
   |  git subtree split -P <name-of-folder> -b <name-of-new-branch> git subtree split -P Project/Pro1 -b Project1
 
  git init git add . git commit -m "分离仓库"
  git pull ../ Project1 git log
 
  | 
 
示例
比如, Project版本库中存在Pro1和Pro2两个项目文件, 现在我们要将Pro1项目拆分到单独的版本库中进行维护, 并且要保留原有提交信息
文件路径如下
1 2 3 4 5 6 7 8
   | D:. ├─Project │  └─Pro1 │     └─File1 │     └─File2 │  └─Pro2 │     └─File1 │     └─File2
   | 
 
1.分离相关提交到新建分支
1 2 3 4 5
   | 
 
  git subtree split -P <name-of-folder> -b <name-of-new-branch> git subtree split -P Pro1 -b Project1
 
  | 
 
2.提取分离后的分支
2.1在新路径保存分支
在合适位置新建文件夹后初始化Git, 然后拉取刚才新建的Project1分支即可
查看git log
1 2 3 4 5 6
   | 
  git pull <path-of-Project> <name-of-new-branch> git pull <path-of-Project> Project1
  git log
 
  | 
 
2.2在Pro1中初始化Git, 不更改原文件夹结构
1 2 3 4 5 6 7
   |  git init git add . git commit -m "提交信息"
  git pull .. Project1 git log
 
  |