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
git push origin master
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