Git Submodule 允许你将一个 Git 仓库作为另一个 Git 仓库的子目录。这意味着你可以在一个 Git 仓库中嵌套另一个 Git 仓库,从而方便地管理依赖关系。Submodule 指向特定的提交,允许你控制何时更新依赖的仓库。 2. Git Submodule如何追踪commit id? Git Submodule 通过记录一个特定的 commit ID 来追踪依赖仓库的状...
git submodule add 192.168.5.153/app/commo src/app-common 当引入submodule以后,submodule依旧是一个独立的项目,该引入路径下所有的pull、push等操作实则都是子仓库独立的git操作,主仓库只记载了相关commit id,并不管理子仓库的代码变动 其他人clone操作:src/common文件夹会被创建,但无内容 需要切换到子仓库路径(...
当我们更新子项目后,相当于是把主项目记录的 submodule 的 commit id 给更新了,需要提交下主项目的变更。 方法三,主项目执行git submodule update [submodule文件夹相对路径] 注意,这个方法会使 submodule 的分支处于主项目里指定的 commit id。可能并不是拉 submodule 的 master 最新代码。 所以,这种方法仅适用于,...
submodule是之前公司用来取代npm包的做法,原理是在一个git工程(父工程)下保存另一个git工程(子工程)的commitID,通过submodule的命令可以把这个commitID的代码同步到父工程。 由于submodule实际上只是把公共模块代码作为父工程的一个目录,与父工程共同运行,所以没有npm包、dll包这种独立于工程外引用造成的各种问题,submodu...
[submodule"pod-library"] path = pod-libraryurl = git@github.com:jjz/pod-library.git 可以看到记录了子项目的目录和子项目的git地址信息。 pod-libray内容只保护子项目的commit id,就能指定到对于的git header上,例如: Subproject commit 4ac42d2f8b9ba0c2f0f2f2ec87ddbd529275fea5 ...
此时在主项目中执行git pull后会自动同步主项目中的子项目commit id依赖,由于主项目已知子项目更新,只需要执行 submodule 更新命令便可将落后的子项目更新到指定的版本。 代码语言:txt 复制 $ git submodule update 2.3.4 子项目远程更新,主项目未更新 commit id ...
.gitmodules内容包含Submodule的主要信息,指定reposirory,指定路径: [submodule"pod-library"]path=pod-libraryurl=git@github.com:jjz/pod-library.git 可以看到记录了子项目的目录和子项目的git地址信息。 pod-libray内容只保护子项目的commit id,就能指定到对于的git header上,例如: ...
首先,主工程并不直接跟踪子模块的代码,而仅仅只跟踪子模块的 commit id 的改动。在执行 git submodule update 更新子模块代码时,Git 就是根据主工程所维护的 commit id 来更新子模块到指定状态的。 bash-3.2$ git diff react_native diff--git a/react_native b/react_native ...
记录引用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保持一致...
在project1中push之后其实就是更新了引用的commit id,然后project1-b在clone的时候获取到了submodule的commit id,然后当执行git submodule update的时候git就根据gitlink获取submodule的commit id,最后获取submodule的文件,所以clone之后不在任何分支上;但是master分支的commit id和HEAD保持一致。