Subtree仓库添加
Step 1
初始化 git 仓库并提交初始文件
1 | |
解释:
- git init:在当前目录创建一个新的 Git 仓库(.git 目录)。
- git add .:把当前目录下的所有新文件和修改记录到暂存区,准备提交。
- git commit -m “Init”:把暂存区内容作为一次提交写入本地仓库,-m 后面是提交说明。
Step 2
把另一个仓库作为子树(subtree)添加到本仓库的某个目录
1 | |
解释:
- git remote add label
:为远程仓库起一个名字(这里用 label),便于后续引用。 - git fetch label:从名为 label 的远程抓取最新对象和引用,但不自动合并到当前分支。
- git subtree add —prefix=
label : - —prefix=
:把子仓库的内容导入到当前仓库的 目录下(该目录会被创建)。 - label:上一步添加的远程名。
:远程仓库中要导入的分支名(如 master 或 main)。 - 该命令会把远程分支的内容合并到本仓库的指定目录,并保留可追溯的合并提交;—squash 可把全部历史压缩为一个提交。
- —prefix=
补充常用操作:
- 更新子树到远程最新:git subtree pull —prefix=
label [—squash] - 将子树的变更推送回远程:git subtree push —prefix=
label
注意事项:
- git subtree 在现代 Git 中通常可用;若不可用,需安装 contrib 工具或使用其他方式(如 git submodule)。
- 在使用前确认
、 、 填写正确,避免覆盖已有重要文件。 - 若希望保留完整历史,勿使用 —squash;若想保持主仓库历史简洁,可使用 —squash。
- 相关操作会在本地产生合并提交,合并策略与普通合并类似,请根据需要在分支上操作并做好备份。
Subtree仓库添加
https://zhazhajust.github.io/2025/02/02/subtree/