git pull--recurse-submodules 更改子模块 更改子模块时,需要注意的是一定要checkout到某一个具体分支,因为当在主项目中使用git submodule update命令更新子模块时,会子模块处于detached HEAD的状态,即没有本地分支跟踪变更,会导致在此状态下子模块的commit,在下一次 update 时丢失。即如果不checkout具体的分支,会覆...
使用git submodule add命令会自动拉取子工程项目代码到指定目录,但其他开发者获取主项目代码时,使用git clone命令是不会拉取到子项目的代码的,必须运行两条命令: 代码语言:txt AI代码解释 $ git submodule init # 初始化本地配置文件 $ git submodule update # 检出对应的 commit id 的子项目 也可以在 clone ...
git push --recurse-submodules=check # 如果子模块没有提交,会直接报错 # or git push --recurse-submodules=on-demand # 如果子模块没有提交,会尝试提交,提交不成功同时会阻止主仓库的推送 1 2 3 其他 其实问题还不少,暂时不一一复现了,主要出现的问题参考了这篇博客 另外还有别的可能出现的问题(e.g....
如果需要克隆出子模组形式引用的外部库,首先需要执行Submodule Update操作。 在需要作克隆子模组的Git工作区中右击,选择“TortoiseGit->Submodule Update...”,点击“OK”即可。 执行Submodule Update...操作后就会把子模组的版本库克隆下来。 3.对主Git库工作区作commit、checkout、revert、pull、push等更改Git工作区...
第一步:使用submodule add...添加子模组 第二步:查看.gitmodules的内容 2. 克隆带子模组的版本库的步骤 第一步:克隆super主版本库 第二步:克隆子模组 3. 对主Git库工作区作commit、checkout、revert、pull、push等更改Git工作区内容的操作时,查看Submodule目录下内容的效果 ...
COPYgit submodule update --remote {模块名} 或者,也可以 COPY# 进入子模块# 切换到相应的分支git checkout {branchName} git fetch git merge {origin/branchName} 无论哪种方式更新,都会在主项目生成子模块更新的 commit 信息,可见主项目只需要记录子模块的 commit 信息即可。当主项目 push 后,其远程派生仓...
其他高级功能,比如打补丁、处理 submodule(非常重要),都可以在 TortoiseGit 的 GUI 里完成。但它没法覆盖所有的功能。有些很少用的,还是得通过命令行。 04 尽量在本地 所有的 git 操作都可以在本地 repo 上完成,因为服务端的并没有更高优先级。虽然大部分提供 g...
在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...
git checkout master # 然后拉取更新 git pull # 回到父项目中更新 cd../../git add xx/xx/xx git commit-m"update submodule" 如何将submodule的变更在父项目中提交 子模块被提交后父项目会检测到,正常提交即可! 代码语言:javascript 代码运行次数:0 ...
一、submodule功能 有时候,一个项目会引用一些外部模块,特别是一些开源项目之间经常会有依赖(或者被依赖)。svn可以通过external来引用外部库,git则通过submodule实现。 但是,git对于submodule的处理比较简单。事实上,git submodule是一个bash脚本文件,很多选项是通过内置的(在git源代码中以C语言实现并被编译到git二进制中...