方法一,先 clone 父项目,再初始化 submodule,最后更新 submodule。 初始化只需要做一次,之后每次只需要直接 update 即可,需要注意 submodule 默认是不在任何分支上的,它指向父项目存储的 submodule commit id。 git clone project.git project2 cd project2 git submodule init git submodule update 方法二,采用递归...
git Submodule 是一个很好的多项目使用共同类库的工具,他允许类库项目做为repository,子项目做为一个单独的git项目存在父项目中,子项目可以有自己的独立的commit,push,pull。而父项目以Submodule的形式包含子项目,父项目可以指定子项目header,父项目中会的提交信息包含Submodule的信息,再clone父项目的时候可以把Submodule...
index.js文件是blob对象,对应的file mode是100644,但是对于lib子仓库的确是一个commit对象, file mode为160000,这是Git中一种特殊的模式,表明我们是将一次提交的commit记录在Git当中,而非将它记录成一个子目录或者文件。 而这正式git submodule的核心原理,Git在处理submodule引用的时候,并不会去扫描子仓库下的文件的...
自己手动删除就好了。 git checkout 切换到指定 commit: git chekcout <commit> 1. HEAD 是一个指针,通常情况下,它指向当前所在分支,而分支又指向一个 commit 提交。HEAD 并不总指向一个分支,某些时候仅指向某个 commit 提交,这就形成 detached HEAD。 切换到 detached HEAD 状态时,会有一个警告。 提示我们可...
git submodule deinit usr/plugins/BaiduSubmit # 此时.git/config 已被重写,BaiduSubmit的相关信息已经不存在了 git rm usr/plugins/BaiduSubmit # 这时,子模块文件被删除,同时.gitmodules 文件中的相关信息被删除 # 还有一种情况,就是子模块刚被add,但是还没有commit的时候,这时如果反悔了,但是还想保留工作现场,可...
git commit : changes里面点击stage,然后右下角输入commit信息,然后点击commit git push : 左边Branches里面选中对应的branch,右击push,或者直接点击左上角的push git clone : 菜单栏选择File->Init New Respository git fetch : 选中当前分支,点击菜单栏下方的fetch ...
Changes to be committed: (use "git restore --staged <file>..." to unstage) new file: .gitmodules new file: learnsub 再次提交: $ git add ./ $ git commit -m "Add submodule" [master 2f86134] Add submodule 2 files changed, 4 insertions(+) ...
在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...
此时其会在main-project文件夹下创建sub-project submodule,如下图 运行git status查看目前状态 $ git status On branch master Your branch is up to date with 'origin/master'. Changes to be committed: (use "git restore --staged <file>..." to unstage) ...
git submodule add https://git.oschina.net/gaofeifps/leg.git 这时查看下状态会多两个文件 ➜ body git:(master) ✗ git status On branch master Your branch is ahead of 'origin/master' by 1 commit. (use "git push" to publish your local commits) ...