git subtree 拆库,提交,建立关联

git 根目录 
    
project_a/
    
project_b/
    
...

git拆库:
# 拉一个新分支
git  checkout -b project_a

# 重构本分支的log,将project_a目录提为根目录并去掉其他文件和log
git  filter-branch  -f  --prune-empty --subdirectory-filter project_a/

# 将新的远端代码库添加到当前工作目录
git  remote add project_a git://xxxxxx

# 将新的分支push到新的代码库的master分支
git  push  -f  project_a project_a:master

建立关联(本地没有该子库文件夹):
git subtree  add   --prefix=project_a project_a master --squash

# 从远程仓库更新子目录
git fetch ai master 
git  subtree pull --prefix=project_a project_a master --squash


# 从子目录push到远程仓库(确认你有写权限)
git subtree push --prefix=project_a project_a dev --squash

已存在库,建立关联,需要先建立分支,在外面单独提交,再建立subtree add关联:

cd git根目录

git subtree split -P project_a -b tempproject_a
(
這會把 project_a 這個資料夾抽出來成為一個叫 tempproject_a的 branch)


cd ..

mkdir project_a

cd project_a

git clone 子仓库(可 git checkout dev分支)

git pull
 ../git根目录 tempproject_a --allow-unrelated-histories
(從 git根目录中把 tempproject_a這個 branch 的資料拉回來)


git commit -m ""
(遇到冲突merge,可以用
git mergetool解决冲突


git push origin master

最后切回主工程

删除子文件夹 

git commit -m "remove moudle add subtree"

git remote add 
project_a <git@github.com:my-user/new-repo.git>  master --squash

git subtree pull -P project_a project_a master --squash

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值