subtree和submodule都可以将整个内部的共享包引入到自己的包里面
官方更推荐使用subtree
subtree
这个操作会把新建一个run_test路径,并把run_test包的所有git commit的历史都下载到run_test这个包,和在自己的项目包里面再加一个新文件夹,然后里面还有一个.git文件另外追踪这个子文件夹的效果.
#在项目中添加subtree的repo
git subtree add —prefix=run_test [<https://github.com>](<https://github.com>)/nasa/run_test master
#如果不想把整个run_test项目的所有历史都拉进来,用—squash
git subtree add —prefix=run_test --squash [<https://github.com>](<https://github.com>)/nasa/run_test master
#rollback回指定的head
git subtree merge -P run_test --squash ba3df09
submodule
//给当前的repo仓库添加submodule
git submodule add git@xxx.git
//自动生成.gitmodule和git-submodule文件夹
//如果是直接从git第一次更新整个包里面带有submodule的,把包拉下来之后submodule里面是没有内容的,
//需要单独再拉一次里面的submodule
git submodule update --init --recursive
//remote的submodule如果更新了,先从remote更新到本地,然后往自己的包里面推送
git submodule update --remote
git commit -m update submodule
git push -u origin dev
浙公网安备 33010602011771号