前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >git subtree使用

git subtree使用

作者头像
ke1th
发布2021-10-25 15:42:56
8370
发布2021-10-25 15:42:56
举报
文章被收录于专栏:漫漫深度学习路

在一个git项目下引用另一个项目的时,我们可以使用 git subtree。使用 git subtree 时,主项目下包含子项目的所有代码。

使用 git subtree 主要关注以下几个功能

  1. 一个项目下如何引入另一个项目
  2. 如果 子项目 有更新,如何同步到 主项目中
  3. 如果开发 主项目的过程中,修改了 子项目代码,如何将修改的代码同步到 子项目中

下面详细说明

  1. 假设我们有一个项目名字叫 proj. 现在想再该项目中引入另一个 git 项目 sub_proj 。操作步骤为
代码语言:javascript
复制
cd proj/

# 1. 先为远程子仓库配置一个别名,便于后续的 pull 与 push 操作,这里例子以 sub_proj 为别名
git remote add sub_proj git@github.com:xx/sub_proj.git

# 2. 其中 --prefix= 简写为 -P,配置 --squash 表示不拉取子仓库的历史提交记录
# -P 用来指定:拉下来的代码 放到哪个目录下
# 该指令只能在 proj/ (即:主项目根目录) 下执行。 该指令就开始拉取 sub_proj 的 main 分支了
git subtree add -P path/to/your/dir --squash sub_proj main
  1. 如果之后 sub_proj 有更新,咋整呢?
代码语言:javascript
复制
git subtree pull -P path/to/your/dir sub_proj main
  1. 如果我们在 proj 的开发过程中,修改了 sub_projsub_proj 的代码如何同步到 git上呢?
代码语言:javascript
复制
git add -u
git commit -m "some modification"
git push origin main # 这个是往 proj 上提交改动
git subtree push -P path/to/your/dir sub_proj main  # 这个是往 sub_proj提交改动

参考资料

https://gb.yekai.net/concepts/subtree-vs-submodule http://www.cocoachina.com/articles/6161 https://segmentfault.com/q/1010000000670427

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/04/09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 下面详细说明
  • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档