美文网首页
Git依赖subtree

Git依赖subtree

作者: shz_Minato | 来源:发表于2019-03-27 15:24 被阅读0次

Git依赖——subtree

 与submodule相比,subtree的优势在于主项目与子模块的双向 通信,即主项目中可以更改子模块的 文件,并将改动推送至子模块的远程git库。
 subtree的操作:增、改、删。

subtree的增加

 主项目中 依赖 子模块

前期准备:初始化 两个项目 parent和child,

步骤:
    ①主项目中添加 子项目远程库
        git remote add 别名 url
    ②主项目中依赖子项目:
        git subtree add --prefix=路径 别名 分支 --squash
        
        路径:子项目文件的存放位置
        别名:第一步添加 远程库 所起的别名
        分支:拉取子项目的分支
        --squash:添加依赖的方式,该参数 会将 子项目的多次提交 压缩为 一次提交
        
     
     git remote add sub-origin url //添加子模块,子模块的别名为sub-origin
     
     git subtree add --prefix=subtree sub-origin master --squash
     控制台输出:
        git fetch sub-origin master
        warning: no common commits //并没有共同的提交
        ···
            * branch            master     -> FETCH_HEAD //当前的master分支 指向了 FETCH_HEAD
            * [new branch]      master     -> sub-origin/master //新建了分支 
        Added dir 'subtree' //新建了 subtree文件件
     
     git status
     控制台输出:
        On branch master
        Your branch is ahead of 'origin/master' by 2 commits. //分支比 本地远程分支 多了两次提交
         (use "git push" to publish your local commits)
        nothing to commit, working tree clean

    为什么两次呢? 因为squash
    git log
    控制台输出:
    commit 29583eab27f08f43324aa1a591a7ea2d6a30c898 //这次提交是 拉取文件之后 合并,合并作为一次提交记录
    Merge: 40a8a5d 19b14f6  //合并的id
        Merge commit '19b14f64f1ea9c135b7ea4bac1936a62ec32616a' as 'subtree'

    commit 19b14f64f1ea9c135b7ea4bac1936a62ec32616a //这是子模块 的提交压缩,将压缩 作为一次提交
    Squashed 'subtree/' content from commit a45b65c //从a45开始压缩
        git-subtree-dir: subtree
        git-subtree-split: a45b65c3237f74ee3ab50e32e225a2e26cb6ba58

    commit 40a8a5d994ef659cc42c9d95980dd69f91fc87a1
        init parent
    
将修改push
    git push

主模块更新子模块

 主模块修改 子模块的文件,并将文件 推送至远端。

    使用命令:
        git subtree --prefix=路径 别名 分支 --squash
        
        路径:子项目文件的存放位置
        别名:第一步添加 远程库 所起的别名
        分支:拉取子项目的分支
        --squash:添加依赖的方式,该参数 会将 子项目的多次提交 压缩为 一次提交
        
    步骤:
        ① 修改文件,并本地提交
        ② 将修改推送至 远端
            先将主模块 推送至远端 git push
            再推送子模块 git subtree push --prefix=路径 别名 分支 --squash

相关文章

  • Git依赖subtree

    Git依赖——subtree  与submodule相比,subtree的优势在于主项目与子模块的双向 通信,即主...

  • git subtree 的命令和使用说明

    git subtree add --prefix= git subtree add --...

  • git subtree

    git subtree 1.在A项目中添加一个远程连接如下: 2.使用subtree命令添加需要依赖的远程仓库 3...

  • 版本库之间的依赖

    Git submodule和Git subtree 与子模块之间的依赖 对于子模块来说,其模块版本库可以被嵌入到主...

  • git subtree 的使用

    参考:Git Tools - Subtree MergingThe power of Git subtreegit...

  • git merge two repos

    git clone git_linkFirstly add subtree, from which you wan...

  • git subtree

    使用GIT SUBTREE集成项目到子目录 使用场景 例如,在项目Game中有一个子目录AI。Game和AI分别是...

  • git subtree

    在生成gitHub page ,打算将打包的doc 文件单独作为一个github page 分支时候了解到一个gi...

  • git subtree教程

    关于子仓库或者说是仓库共用,git官方推荐的工具是git subtree。 我自己也用了一段时间的git subt...

  • git-subtree

    多个工程,存在通用目录或文件内容 举例 工程P1,目录结构: src1utils1test.jsp1.js 工程P...

网友评论

      本文标题:Git依赖subtree

      本文链接:https://www.haomeiwen.com/subject/kzbzvqtx.html