git中拆分项目

原创
02/22 13:55
阅读数 150

需求

之前的一个大项目里面有多个小项目, 比如: f:/sites/目录下放了 thumbs, ecommerce, esdemo 等一些站点, 这些都是在一个 git 版本库中.

现在需要把这几个一级目录拆分到不同的独立的版本库中, 并要保留之前的版本记录

# 目录结构
|sites
|----thumbs
|----ecommerce
|----esdemo

解决方案

在此我们使用 git subtree 工具 来进行拆分,简单来说就是先把 每个要拆分的项目(文件夹) 的所有提交 分割成一个新的分支,然后把该分支merge到一个全新的仓库。

git subtree split --prefix=<prefix> [OPTIONS] [<commit>]

以子项目ecommerce为例, 在 Git Bash下操作.

1. 拆分子项目到分支

把子项目 ecommerce 拆分到分支 ecommerce中去.

cd /f/sites
git subtree split -P ecommerce -b ecommerce

支持对下级文件夹的拆分, 比如将ecommerce下的static文件夹拆分出来: git subtree split -P ecommerce/static -b static

2. 建立新的项目

cd /f/
# 先建立一个根目录, 用于存放新的多个仓库
mkdir sites2
cd sites2

#建立新的项目文件夹
mkdir ecommerce
cd ecommerce

# 初始一个空的仓库, 默认只有一个 master 分支
git init

3. 拉取原来的子项目到新的仓库

git pull /f/sites ecommerce

4. 推送到远端仓库

git remote add origin **远端仓库地址**
git push origin master
展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部
返回顶部
顶部