如果一个程序依赖于另一个程序,并且需要同时开发的时候,就可以使用submodule。git里面的submodule,本质是上就是在自己的repository里面存放指向另一个repository的某个commit的引用。所以如果repository是多用户共享的,要保证每个submodule所对应的repository每个用户都能访问到。
git submodule add <https://github.com/xxxx/yyyy>
添加完submodule,就可以在对应的目录下面找到checkout出来的文件。
同时也会添加一个.gitmodules
文件在repository的根目录里。
[submodule "abc"]
path = abc
url = https://github.com/xxxx/yyyy
然后commit, push就可以了。
想正常clone
git clone https://github.com/aaaa/bbbb
这个时候进入clone出来的目录,submodule的子目录下面是空的,默认不会把submodule一同checkout出来。
接着需要执行两条命令
git submodule init
git submodule update
这个时候submodule才会正常Checkout出来。