参考地址:https://www.php.cn/manual/view/35125.html
参考地址:https://laozhu.me/post/git-submodule-tutorial/
1、创建公共库
$ git clone http://....
... 做你想做的公共内容,之后提交到master,再然后将你对外暴露的结构文件提交到希望提交的分支
$ git checkout -b xx
$ git subtree push --prefix 目录 origin xx
2、自己的项目站点
$ git submodule add -b xx https://.... 目录
这个时候仓库下面多出了一个 .gitmodules 文件,该文件列出了所包含的子模块列表,并为列表中每一个子模块指定了本地路径(path)和远程仓库地址(url),除此以外我们还可选为子模块指定 branch 分支,不指定默认为 master 分支。
顺便观摩一下 Hugo Themes 仓库的 .gitmodules 引用文件。
更新:git submodule update --remote
为了确保当前的跟踪分支状态,update --remote在计算 SHA-1 之前获取子模块的远程存储
other
–remote
该选项仅对更新命令有效。使用子模块的远程跟踪分支的状态,而不是使用超级项目的已记录的 SHA-1 来更新子模块。使用的远程是分支的远程(branch..remote),默认为origin。远程分支使用默认为master,但分支名称可以通过设置覆盖submodule..branch选项在任一.gitmodules或.git/config(与.git/config采取优先次序)。
这适用于任何支持的更新程序(–checkout,–rebase,等)。唯一的变化是目标 SHA-1 的来源。例如,submodule update --remote --merge将上submodule update --merge游子模块更改合并到子模块中,同时将超级项目 gitlink 更改合并到子模块中。
为了确保当前的跟踪分支状态,update --remote在计算 SHA-1 之前获取子模块的远程存储库。如果你不想获取,你应该使用submodule update --remote --no-fetch。
使用此选项可将来自上游子项目的更改与子模块的当前 HEAD 集成。或者,您可以git pull从子模块运行,除远程分支名称外,其他子模块相同:update --remote使用默认的上游存储库submodule..branch,并git pull使用子模块branch..merge。身高:submodule..branch如果你想与上层项目分配默认的上游分支和branch..merge如果你想要一个更原始的感觉辅助模块本身工作时。