Git Submodule 允许你将一个 Git 仓库作为另一个 Git 仓库的子目录。这意味着你可以在一个 Git 仓库中嵌套另一个 Git 仓库,从而方便地管理依赖关系。Submodule 指向特定的提交,允许你控制何时更新依赖的仓库。 2. Git Submodule如何追踪commit id? Git Submodule 通过记录一个特定的 commit ID 来
接着需要将主仓库中的子模块 ModuleA 的变化同步到远程主仓库中具体的操作和上一节主仓库更新子模块仓库中的修改类似,用 add 和 commit 方式提交主仓库的更新,这个时候就完成了子模块和主仓库代码一致。 $ cd .. $ git add . $ git commit -m "update ModuleA" $ git push ...
当我们更新子项目后,相当于是把主项目记录的 submodule 的 commit id 给更新了,需要提交下主项目的变更。 方法三,主项目执行git submodule update [submodule文件夹相对路径] 注意,这个方法会使 submodule 的分支处于主项目里指定的 commit id。可能并不是拉 submodule 的 master 最新代码。 所以,这种方法仅适用于,...
值得注意的是,此时主项目修改的是其依赖的子项目的版本,而非完整变更代码,即引用的子项目的commit id。 2.3.3 子项目远程更新,主项目已更新 commit id 此时在主项目中执行git pull后会自动同步主项目中的子项目commit id依赖,由于主项目已知子项目更新,只需要执行 submodule 更新命令便可将落后的子项目更新到指定...
方法一,先 clone 父项目,再初始化 submodule,最后更新 submodule。 初始化只需要做一次,之后每次只需要直接 update 即可,需要注意 submodule 默认是不在任何分支上的,它指向父项目存储的 submodule commit id。 git clone project.git project2 cd project2 git submodule init git submodule update 方法二,采用递归...
[submodule"pod-library"] path = pod-libraryurl = git@github.com:jjz/pod-library.git 可以看到记录了子项目的目录和子项目的git地址信息。 pod-libray内容只保护子项目的commit id,就能指定到对于的git header上,例如: Subproject commit 4ac42d2f8b9ba0c2f0f2f2ec87ddbd529275fea5 ...
git submodule add 192.168.5.153/app/commo src/app-common 当引入submodule以后,submodule依旧是一个独立的项目,该引入路径下所有的pull、push等操作实则都是子仓库独立的git操作,主仓库只记载了相关commit id,并不管理子仓库的代码变动 其他人clone操作:src/common文件夹会被创建,但无内容 需要切换到子仓库路径(...
2.1 创建Git Submodule测试项目 2.1.1 准备环境 1 2 3 ➜ henryyan@hy-hp ~pwd /home/henryyan mkdir-p submd/repos 创建需要的本地仓库: 1 2 3 4 5 cd~/submd/repos git --git-dir=lib1.git init --bare git --git-dir=lib2.git init --bare ...
记录引用Submodule的commit id 在project1中push之后其实就是更新了引用的commit id,然后project1-b在clone的时候获取到了submodule的commit id,然后当执行git submodule update的时候git就根据gitlink获取submodule的commit id,最后获取submodule的文件,所以clone之后不在任何分支上;但是master分支的commit id和HEAD保持一致...
这个方法会自动拉取submodule的主分支(通常叫master或main)的最新版本。效果跟方法一一致。 如果你不带参数[submodule文件夹相对路径],就会更新所有 submodules。 注意事项,更新后需提交主项目变更。 当我们更新子项目后,相当于是把主项目记录的 submodule 的 commit id 给更新了,需要提交下主项目的变...