使用git submodule add命令会自动拉取子工程项目代码到指定目录,但其他开发者获取主项目代码时,使用git clone命令是不会拉取到子项目的代码的,必须运行两条命令: 代码语言:txt AI代码解释 $ git submodule init # 初始化本地配置文件 $ git submodule update # 检出对应的 commit id 的子项目
但是如果这时候的commit id跟主项目里记录的 submodule 的 commit id 不一致,你会在主项目仓库看到diff,你可能需要提交主项目更新。 方法二,主项目执行git submodule update --remote [submodule文件夹相对路径] 这个方法会自动拉取submodule的主分支(通常叫master或main)的最新版本。效果跟方法一一致。 如果你不带参...
git submodule update --remote 这个命令会从子模块的远程仓库拉取最新的 commit,并更新子模块到该 commit。 提交主仓库的更改: 更新子模块后,主仓库会记录子模块的新 commit ID。你需要将这一更改提交到主仓库: bash git add . git commit -m "Update submodule to latest commit" git push origin master ...
git 的submodule 工具方便第三方库的管理,比如gitlab 上的各种开源工具,spdlog等 在项目目录下创建.gitmodule 里可以添加第三方库,然后在更新第三方库时,有两个选项 git submodule update --init 这是更新当前主项目上记录的submodule 的commitid 比如在提交子项目的时候,会在主项目产生变更,这个变更随着主项目一起...
接着需要将主仓库中的子模块 ModuleA 的变化同步到远程主仓库中具体的操作和上一节主仓库更新子模块仓库中的修改类似,用 add 和 commit 方式提交主仓库的更新,这个时候就完成了子模块和主仓库代码一致。 $ cd .. $ git add . $ git commit -m "update ModuleA" $ git push ...
Git对于Submodule有特殊的处理方式,在一个主项目中引入了Submodule其实Git做了3件事情: 记录引用的仓库 记录主项目中Submodules的目录位置 记录引用Submodule的commit id 在project1中push之后其实就是更新了引用的commit id,然后project1-b在clone的时候获取到了submodule的commit id,然后当执行git submodule update的时候...
此时可以发现,这里的commit id和git上最新提交的commitid不一样,这里的commit id还是之前某一次的提交id。 这个其实要说明的是,git submodule update获取代码的时候是和子工程的git路径和这里的commit id有关联的,获取的就是对应的git路径下截止这个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保持一致。 查看~/submd/ws/project1...
方法一,先 clone 父项目,再初始化 submodule,最后更新 submodule。 初始化只需要做一次,之后每次只需要直接 update 即可,需要注意 submodule 默认是不在任何分支上的,它指向父项目存储的 submodule commit id。 git clone project.git project2 cd project2 git submodule init git submodule update 方法二,采用递归...
$ git submodule update --init--recursive Submodule path'spice-common': checkedout'00db44087807335e74c8f65ea3e6fde0b684e7db' 更新子模块在主模块中的commit id 在子模块目录通过commit或pull等操作修改commit id,然后在主模块目录下执行 # git add 子模块目录# git commit -m"update submodule commit id...