本文收集 git subtree 的使用。


将 B 仓库添加为 A 仓库的一个子目录

在 A 仓库的根目录输入命令:

$ git subtree add --prefix=SubFolder/B https://github.com/walterlv/walterlv.git master

这样,B 仓库的整体,会被作为 A 仓库中一个 SubFolder/B 的子文件夹,同时保留 B 仓库中的整个日志记录。

将 A 仓库中的 B 子目录推送回 B 仓库

$ git subtree push --prefix=SubFolder/B https://github.com/walterlv/walterlv.git master

当然,如果你经常需要使用 subtree 命令,还是建议将那个远端设置一个别名,例如设置 walterlv

$ git remote add walterlv https://github.com/walterlv/walterlv.git

那么,上面的命令可以简单一点:

$ git subtree push --prefix=SubFolder/B walterlv master

后面,我们命令都会使用新的远端名称。

将 B 仓库中的新内容拉回 A 仓库的子目录

$ git subtree pull --prefix=SubFolder/B walterlv master

本文会经常更新,请阅读原文: https://dotnet-campus.github.io//post/git-subtree-usage.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

知识共享许可协议 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 dotnet 职业技术学院 (包含链接: https://dotnet-campus.github.io/ ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系