例如项目A 和B,其中A 用到B,想直接在子目录中引用过去,这样在B 有push 的时候A 中的B 也会跟着更新。
可以用submodule
submodule
中文文档: http://git-scm.com/book/zh/Git-工具-子模块submodule
实例教材: http://www.kafeitu.me/git/2012/03/27/git-submodule.htmlsubtree
也可以,但我没用过,用法参考: http://blog.zlxstar.me/blog/2014/07/18/git-submodule-vs-git-subtree/
如果你的目标是子项目B提交后自动更新A,那是做不到的,除非自己做hook。
为避免submodule的坑,个人使用subtree。
基本流程如下:
git remote add
在A项目中添加子项目B的简称(可选)。git subtree add
在A项目中首次添加目录引用。git subtree pull
拉取子项目B项目中的更新。另外,由于subtree的特点,“在子项目修改并pull入主项目”的时候会把所有的子项目commit全部合并进主项目中。如果对主项目历史有洁癖,或者为便于公共修改避免引入太多与主项目无关的commit历史,还可以参考以下流程:
--splash
参数。