现在有如下需求,之前多个项目(Project A,Project B,Project C)混在了一个大的Project里面,不便于管理。 现在需要把Project C 单独拆分出来,并保留该项目之前的git记录。
在此我们使用 git subtree 工具 来进行拆分,简单来说就是先把Project C的所有提交抽离成一个单独的分支,然后把该分支merge到一个全新的仓库。
git subtree split --prefix=<prefix> [OPTIONS] [<commit>]
拆分项目Project C到 branchC分支
git subtree split -P ProjectC -b branchC # 切换到新的分支 git checkout branchC
这时候Project C的内容以及log都被放到 branchC分支
新建一个单独的项目ProjectC
mkdir ../ProjectC cd ../ProjectC git init
在新项目中合并刚才split出来的分支
git pull ../Project branchC
清理下无用日志: git gc --aggressive --prune=now
# 添加远程仓库 git remote add origin ***** git push
进入原项目 git checkout master
然后删除split出来的分支 :git push origin --delete branchC
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!