要指定子模块到特定的commit,你需要进入子模块的目录,并切换到你想要的commit。例如,假设你的子模块位于path/to/submodule,并且你想要切换到commit abc12345: bash cd path/to/submodule git checkout abc12345 3. 更新主项目中的子模块引用 切换子模块的commit后,你还需要在主项目中更新对子模块commit的引用。这...
自己手动删除就好了。 git checkout 切换到指定 commit: git chekcout <commit> 1. HEAD 是一个指针,通常情况下,它指向当前所在分支,而分支又指向一个 commit 提交。HEAD 并不总指向一个分支,某些时候仅指向某个 commit 提交,这就形成 detached HEAD。 切换到 detached HEAD 状态时,会有一个警告。 提示我们可...
记录引用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保持一致。
git Submodule 是一个很好的多项目使用共同类库的工具,他允许类库项目做为repository,子项目做为一个单独的git项目存在父项目中,子项目可以有自己的独立的commit,push,pull。而父项目以Submodule的形式包含子项目,父项目可以指定子项目header,父项目中会的提交信息包含Submodule的信息,再clone父项目的时候可以把Submodule...
git submodule deinit usr/plugins/BaiduSubmit # 此时.git/config 已被重写,BaiduSubmit的相关信息已经不存在了 git rm usr/plugins/BaiduSubmit # 这时,子模块文件被删除,同时.gitmodules 文件中的相关信息被删除 # 还有一种情况,就是子模块刚被add,但是还没有commit的时候,这时如果反悔了,但是还想保留工作现场,可...
git submodule用于多模块(仓库)管理,其父项目与子项目提交是分开的,父项目提交只包含子项目的信息,而不会包括子项目的代码,子项目使用独立的commit、push、pull操作。 简单来说:父项目git仓库管理父项目内容和子项目信息;子项目git仓库管理子项目内容。
cd <path_to_submodule> git pull origin main 然后回到主项目目录,提交子模块的更新: cd .. git add <path_to_submodule> git commit -m "Update submodule" 4. 删除 Submodule 要从项目中删除一个子模块,步骤如下: 删除子模块的条目: git submodule deinit -f -- <path_to_submodule> 删除子模块的目...
这里需要指出父项目的 git 并不会记录 submodule 的文件变动,它是按照 commit id 指定 submodule moduleA 的 git header,所以 .gitmodules 和 moduleA 这两项是需要提交到父项目的远程仓库的。 On branch master Your branch is up-to-date with 'origin/master'. Changes to be committed: (use "git reset...
第一步:使用submodule add...添加子模组 第二步:查看.gitmodules的内容 2. 克隆带子模组的版本库的步骤 第一步:克隆super主版本库 第二步:克隆子模组 3. 对主Git库工作区作commit、checkout、revert、pull、push等更改Git工作区内容的操作时,查看Submodule目录下内容的效果 ...
比如在公司不同开发团队中,有一个基础共享库,同时被多个项目调用。若要保证基础共享库的动态更新,那么就需要把共享库独立为一个代码库,但是分别把共享库...