分离子目录到单独的 Git Repo
微服务框架盛行的时代,开发人员希望将各模块解耦,有时会涉及代码仓库的拆分,如将一个大仓库中的某个子目录作为一个新的独立仓库拆分出去。
有两种比较直观的方式:
- 把子目录移出代码仓库,在移出的子目录里 git init 创建新仓库 (缺点:新仓库不保留文件历史)
- 复制代码仓库,删除子目录以外的其他文件 (缺点: 其他的目录文件还存在于仓库中,git checkout 可查看,而且仓库巨大)
以上两种方式不可取,使用 git subtree
命令能够简化这样的操作。
假设现有目录仓库如下:
我们把btoa
目录分离成一个独立的 git repo
上述操作完成后,分支 btoa-only 中只存在 btoa 子目录树中的文件和历史记录。
创建一个新的仓库,并将 btoa-only 分支的代码 pull 到新仓库中。
可以将仓库推到 github 或私有仓库中了,步骤略。
Copyright © 2016-2024 by 赵军旺