当我们更新子项目后,相当于是把主项目记录的 submodule 的 commit id 给更新了,需要提交下主项目的变更。 方法三,主项目执行git submodule update [submodule文件夹相对路径] 注意,这个方法会使 submodule 的分支处于主项目里指定的 commit id。可能并不是拉 submodule 的 master 最新代码。 所以,这种方法仅适用于,...
git Submodule 是一个很好的多项目使用共同类库的工具,他允许类库项目做为repository,子项目做为一个单独的git项目存在父项目中,子项目可以有自己的独立的commit,push,pull。而父项目以Submodule的形式包含子项目,父项目可以指定子项目header,父项目中会的提交信息包含Submodule的信息,再clone父项目的时候可以把Submodule...
在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...
记录主项目中Submodules的目录位置 记录引用Submodule的commit id 在project1中push之后其实就是更新了引用的commit id,然后project1-b在clone的时候获取到了submodule的commit id,然后当执行git submodule update的时候git就根据gitlink获取submodule的commit id,最后获取submodule的文件,所以clone之后不在任何分支上;但是mas...
git commit -am "Remove submodule" 解决的问题: 有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目。 也许是第三方库,或者你独立开发的,用于多个父项目的库。 现在问题来了:你想要把它们当做两个独立的项目,同时又想在一个项目中使用另一个。
提交这个更改:git commit m "Removed submodule <name>"。 注意,如果之前已经克隆了包含该子模块的仓库,那么在删除子模块后,这些克隆的仓库中的子模块目录可能会变成空目录或者包含一些残留文件。需要手动清理这些残留文件。克隆包含子模块的项目: 使用git clone recursesubmodules <repositoryurl>命令来...
git commit -am "Remove submodule" 解决的问题:有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目。也许是第三方库,或者你独立开发的,用于多个父项目的库。现在问题来了:你想要把它们当做两个独立的项目,同时又想在一个项目中使用另一个。
非线性的工作流表示提交和分支操控是一个常规的操作。建立分支、rebase、修订 commit、强制推送、cherry-pick、分支复位,在Git都是很正常的使用方式。 02 什么不是 Git 很多东西经常和Git一起出现,但是并不是Git的一部分。 2.1 GitHub/GitLab 这些都不是git,而是提...
$ git add .gitmodules awesomelibrary/ $ git commit -m"added submodule"[main (root-commit) d5002d0] added submodule 2 files changed, 4 insertions(+) create mode 100644 .gitmodules create mode 160000 awesomelibrary Cloning git submodules ...
包含子模块的路径和 git 地址,moduleA 指定了子模块的 commit id,使用 git diff 可以看到这两项的内容。 这里需要指出父项目的 git 并不会记录 submodule 的文件变动,它是按照 commit id 指定 submodule moduleA 的 git header,所以 .gitmodules 和 moduleA 这两项是需要提交到父项目的远程仓库的。 On branch...