应用场景:
box项目目录结构如下:
–server
–frontend
–configs
–docs
–jobs
–fabtask
–migrations
–config.py
–fabfile.py
–handler.py
–manage.py
–README.md
–requirements.txt
- 删除frontend文件夹,创建新的项目box-server
- 抽出frontend文件夹,创建新的项目box-web
- 抽出configs/ fabtask/ docs/ fabfile.py config.py,创建新的项目box-deploy
分离box-server项目
- 创建新项目box-server
git clone box-repository-url box-server
cd box-server
git filter-branch --tree-filter 'rm -rf frontend' --prune-empty -- --all
git remote set-url origin box-server-repository-url
git push --all origin
分离box-web项目
- 创建新项目box-web
git clone box-repository-url box-web
cd box-web
git filter-branch --prune-empty --subdirectory-filter frontend/ -- --all
git remote set-url origin box-web-respository-url
git push --all origin
分离box-deploy项目
- 创建新项目box-deploy
git clone box-repository-url box-deploy
cd box-deploy
git filter-branch --index-filter 'git rm --cached -qr --ignore-unmatch -- . && git reset -q $GIT_COMMIT -- configs/ fabtask/ docs/ fabfile.py config.py' --prune-empty -- --all
git remote set-url origin box-deploy-repository-url
git push