202010-09 详解git submodule HEAD detached 的问题 在使用gitsubmodule的时候,常常会遇到执行完以下操作后发现子仓库的head指针处于游离状态gitclonexxxxx.gitgitsubmoduleupdate--init然后切换到子仓库,查看当前分支的状态如下原因是之前同事在子仓库中修改并提交后,没有在父仓库中更新子仓库的最新提交记录正常情况下,修改子仓库的内容并在子仓库提交后会在父仓库执行gitdiff会有如下输出解决gitsubmoduleheaddetached的方法:重新建立submodule,加入时... 继续阅读 >
202010-09 详解git submodule update获取不到最新提交的代码 今天遇到了一个gitsubmoduleupdate获取不到最新代码的问题,闹了半天原来是自己对gitsubmodule理解不到位引起的。解决了后,感觉虽然没有什么高深的地方,但是不清楚的时候还是需要费时间去查找问题,所以还是在此记录如下。1.问题描述同事在共同使用的一个工程里修改了代码,这个工程在我本地的工程中是作为submodule来使用的,但是我在本地执行以下命令却获取不到最新提交的代码。gitsubmoduleupdate--init--recursive2.... 继续阅读 >
202010-09 Git Submodule管理项目子模块的使用 使用场景当项目越来越庞大之后,不可避免的要拆分成多个子模块,我们希望各个子模块有独立的版本管理,并且由专门的人去维护,这时候我们就要用到git的submodule功能。常用命令gitclone<repository>--recursive递归的方式克隆整个项目gitsubmoduleadd<repository><path>添加子模块gitsubmoduleinit初始化子模块gitsubmoduleupdate更新子模块gitsubmoduleforeachgitpull拉取所有子模块如何使用1.创建带子模块... 继续阅读 >
202010-09 详解git submodule使用以及注意事项 一、背景在平时的软件开发过程中常常会有这样的场景,自己负责的某个模块会依赖其他模块或者第三方的library。这时你自己的模块是一个独立的代码仓库,你想要实现这样一种功能,当你从你的模块的代码仓库里把代码拉到本地来的时候,能自动的将你依赖的模块或第三方库都拉到指定的目录当中去。当然要实现这个功能的方法有很多,比如使用repo之类的工具,又比如如果你使用的是svn作为版本管理工具,那么你可以使用svn的external机制... 继续阅读 >
202010-09 git中submodule子模块的添加、使用和删除的示例代码 背景项目中经常使用别人维护的模块,在git中使用子模块的功能能够大大提高开发效率。使用子模块后,不必负责子模块的维护,只需要在必要的时候同步更新子模块即可。本文主要讲解子模块相关的基础命令,详细使用请参考manpage。子模块的添加添加子模块非常简单,命令如下:gitsubmoduleadd<url><path>其中,url为子模块的路径,path为该子模块存储的目录路径。执行成功后,gitstatus会看到项目中修改了.gitmodules,并增加了... 继续阅读 >
202010-09 Git Submodule使用完整教程(小结) 自从看了蒋鑫的《Git权威指南》之后就开始使用GitSubmodule功能,团队也都熟悉了怎么使用,多个子系统(模块)都能及时更新到最新的公共资源,把使用的过程以及经验和容易遇到的问题分享给大家。GitSubmodule功能刚刚开始学习可能觉得有点怪异,所以本教程把每一步的操作的命令和结果都用代码的形式展现给大家,以便更好的理解。1.对于公共资源各种程序员的处理方式每个公司的系统都会有一套统一的系统风格,或者针对某一个大客... 继续阅读 >