赶上清明节回老家,有段时间没有更新了,今天说个简单又好用的东西——git submodule。
背景
先说一下背景吧,如果有相同需求的开发者就会用得到。由于我需要在我的工程中依赖一个module,而这个module不是我在维护,而是,别的组的同学在维护,他们每次只要确定更新,告诉我一声,我更新就行,代码啥的不用管。
开始的时候我想的是在我的工程之外git clone了一个module A,然后通过AS import进来,但是我发现这样做,AS会在本地重新生成一个新的module B,这个B只是A的备份,也就是,每次这个A工程更新了,你的as中的这个B module并不会更新。这样很尴尬,所以我选择了使用git submodule的方式。
使用
首先在命令行中将目录切换到你的工程下,没错,就是你的工程下(Project),然后
git submodule add 你想依赖的module的git地址
就像git clone一样,一个新的module(或project)出现在你的工程目录下了,然后你进入Android Studio,将你需要的module import进来,再根据需要进行依赖即可。
更新
如果有需要更新的时候,只需要输入一下命令:
git submodule update
即可
切换分支
也许你git submodule add
之后,需要切换分支,这是,你只要cd 进入这个工程,然后使用checkout就可以只切换这个工程的分支。
删除
首先,要在“.gitmodules”文件中删除相应配置信息。然后,执行“git rm –cached ”命令将子模块所在的文件从git中删除。
队友同步代码
刚开始这么做的时候有点坑队友,我使用了git submodule之后忘了告诉同事,他们同步代码,发现运行不了了。
当然运行不了了,因为正常同步代码是不会同步到git submodule的module的,这时候只需要:
git submodule update --init --recursive
总结
很简单吧,但是多于多模块开发,或几个小组共同作业的团队,还是很好用的。
最后还是推荐一下我的公众号,欢迎给我留言。
更多的开发知识,可以关注我的公众号:
网友评论
这个模块,被好多独立项目共同使用