0 Preface/Foreword
1 同步最新submodule内容到repo中
项目的repo包含了一个子模块,在开发过程中,经常需要同步子模块最新的commit到repo中。该如何操作呢?
本地在克隆时候,已经同步把子模块中的内容克隆下来了,但是,过了一段时间,子模块在主分支有了新的提交,此时项目repo中记录的还是之前子模块的提交记录。 以下方法用于把子模块最新的提交更新到项目repo中。
步骤如下:
第一步:在项目repo中,进入到子模块文件夹下,通过git pull进行拉取
克隆代码的时候,在本地会拉取子模块所有的内容,然后在切换到对应的点(当前项目repo绑定的点)。(为了演示整个过程,重新拉取了项目repo)
拉取前:
拉取后:
因为重新拉取了项目repo,所以本地子模块中已经包含了远程子模块中所有内容,但是远程项目repo记录的子模块点是之前的点,所有子模块目前自动切换到了之前的点。
提示当前没有在一个分支上,需要切换到一个指定的分支。
第二步:返回项目repo根目录,git status查看状态
发现子模块(文件夹)有新的提交。
当前远程仓库中记录的子模块最新的提交如下:
第三步:git add 子模块更改
第四步:git commit提交到本地仓库
第五步:git push 到远程仓库
2 回退子模块修改
2.1 项目repo路径下update子模块
git submodule update --remote
2.2 回退子模块
git submodule update --init --recursive
3 查看子模块修改
3.1 在项目repo路径下查看
git diff
3.2 查看子模块具体修改
git diff --submodule
3.3 设置submodule显示的总结个数
git config status.submoduleSummary 1