将 Git 子树(subtree)转换为子模块(submodule)的步骤如下:
1. 确定子树的路径和对应的远程仓库地址
找到当前项目中子树的路径以及对应的远程仓库地址。例如,假设子树的路径为 subtree-folder
,对应的远程仓库地址为 https://github.com/user/repo.git
。
2. 删除子树
使用以下命令删除子树:
git rm -r subtree-folder
git commit -m "Remove subtree folder"
3. 添加子模块
将子模块添加到相同的路径中:
git submodule add https://github.com/user/repo.git subtree-folder
git commit -m "Add submodule at subtree-folder"
4. 初始化并更新子模块
确保子模块正确初始化并更新:
git submodule init
git submodule update
5. 提交更改
将更改提交到主仓库:
git add .gitmodules subtree-folder
git commit -m "Convert subtree to submodule"
注意事项
- 如果子树有未提交的更改,请先处理这些更改,否则可能会丢失数据。
- 如果子树的路径或远程仓库地址有误,可能导致子模块无法正确初始化。
通过以上步骤,你可以将 Git 子树转换为子模块,从而更灵活地管理依赖关系。