假设我有一个已经是 git repo“sub”的目录,现在我希望它成为我新创建的超级目录“sup”的子树。
我已经搜索了文档,但所有教程都是关于添加远程存储库或从现有提交中拆分。如何将现有的 git 存储库添加到主 git 存储库?
使用git subtree add --prefix=sub sub会给出警告子已经存在。
有两种方法可以实现此目的,具体取决于您的期望。
对于 1,您想使用 git 子模块。具体来说,
在你的sup目录(已经用git init初始化)中运行:
git submodule add location-of-sub
Run Code Online (Sandbox Code Playgroud)
它将把子存储库克隆到超级存储库中。如果子存储库位于其他位置,您可以将其删除。
请注意,子模块仍然充当与顶级存储库不同的存储库。
请参阅子模块的文档:
https://git-scm.com/book/en/v2/Git-Tools-Submodules
对于2来说,情况有点复杂。
首先,获取其他存储库的提交:
# add remote
git remote add sub <locationofsubrepo>
# fetch commits
git fetch
# create local branch with sub
git checkout -b sub_branch sub/master
# switch to master
git checkout master
# now, merge commit as a subdirectory
git read-tree --prefix=sub/ -u sub_branch
Run Code Online (Sandbox Code Playgroud)
以后你可以继续从 sub 中拉取,它会合并到 super 中
| 归档时间: |
|
| 查看次数: |
3837 次 |
| 最近记录: |