深入理解 Git submodules

102 阅读2分钟

DRY 原则是程序世界的基本原则之一,我们每个人在工作中都不可避免的会复用别人的代码,有可能是某个开源项目,也有可能是公司里其他团队提供的模块。Git 是最流行的现代化代码版本控制工具,为了支持模块的复用,Git 引入了 submodule 的概念,通过这篇文章,你会理解什么是 git submodule 以及在项目中如何应用。原文:Understanding and Working with Submodules in Git[1]

在开发中可以使用

git submodule add github.com/sss/xxxx.gi…

来将某一个第三方库集成到自己的项目中, 这一般在公司中用的比较多, 比如公司比较成熟的一些库和工具,这样能达到复用的效果

今日在公司开发过程中也集成了这个git子模块, 不过在修改git子模块的时候并不顺利, 就是更新了子模块的代码之后(虽然这种概率很小, 毕竟它是公共的工具, 一般都会封装的比较好, 所以多数情况下无需修改, 怎奈何 发现一个错别字, 身有强迫症的我, 必须给他改了, 嘿嘿嘿~)

后来问题解决了, 能把代码更新的第三方库中, 具体步骤如下

  1. 在子目录 git add .

  2. 在子目录 git commit -m "什么情况"

  3. 在子目录 git push

    在这一步出了一点问题, 在我推代码的时候, git提示'# fatal: You are not currently on a branch.To push the history leading to the current (detached HEAD', 经过上网查资料得到解决方法:

    从分离的HEAD创建一个临时分支,然后将该[分支合并]到`master。`
    具体步骤为: 
         1.  `git branch temp-branch`
         2.  `git checkout master`
         3.  `git merge temp-branch`
         4.  `git push origin master`    //问题顺利解决
    

最后在父项目执行 git add . , git commit -m "git子库修改", git push