法拉利最贵的车的耳机有谁知道

使用 git submodule 建立子项目依赖_开发聚合_ThinkSAAS
使用 git submodule 建立子项目依赖
使用 git submodule 建立子项目依赖
本文来自: 如有问题请!
发布时间: 08:00:00
[unable to retrieve full-text content]在使用 git 做项目时,也许会碰到一些组件需要独立出去,同时供多个项目使用,而不是在多个项目里拷贝两份组件的代码。如果公共的组件已经成熟了,可以发布到CDN上供多个项目去引用。但如果都在开发阶段,在多个项目里都要引用某个公共组件,这是就需要用到 git submodule 的功能了。
建立 Submodule
主项目::xxx/your-app.git
子项目::xxx/your-lib.git
在主项目 your-app 中使用git submodule add 子项目地址 在主项目中的路径
git submodule add :xxx/your-lib.git libs/your-lib
然后git status会发现如下
new file: .gitmodules
new file: your-lib
查看.gitmodules内容
[submodule "libs/your-lib"]
path = libs/your-lib
url = :xxx/your-lib.git
需要commit,但这里子模块目录并不是以文件形式提交,注意下面出现的160000模式。 这是 Git 中的一种特殊模式,它本质上意味着你是将一次提交记作一项目录记录的,而非将它记录成一个子目录或者一个文件。
create mode 100644 .gitmodules
create mode 160000 libs/your-lib
更新 Submodule
我们先在 your-lib 里做了新的commit,但在主项目 your-app 中直接git pull并不能获取到子模块的最新更新。
【注意】需要进到主项目中子模块的具体目录里再 git pull
然后在主项目根目录下发现。。。
modified: your-lib (new commits)
在主项目中需要再次commit,以告诉HEAD当前的子模块指向哪个版本。在 git 的提交记录里能看到变化内容只是个commit标识
Git 在主项目中记录了一个子模块的提交日志的指针,用于保存子模块的提交日志所处的位置,以保证无论子模块是否有新的提交,在任何一个地方克隆下顶级项目时,各个子模块的记录是一致的。避免因为所引用的子模块不一致导致的潜在问题。如果我们更新了子模块,我们需要把这个最近的记录提交到版本库中,以方便和其他人协同。
克隆主项目
git clone :xxx/your-app.git
git submodule update –init –recursive
git clone –recursive :xxx/your-app.git
Submodule 开发协作
在主项目中添加了 submodule 作为子项目,其实进入到子项目中,它跟平常git clone下来的仓库没啥区别,同样可以在里面 commit, pull, push
如果需要将子项目回退到之前的版本,可以使用git reset –hard commit_id,即在主项目中不使用最新版本的子项目(此时同样需在主项目中 add commit 1次,以更新 Subproject 的指针位置)。
删除 Submodule
在主项目中git rm libs/your-lib/删除子模块后,.gitmodules文件的内容也会相应移除
PHP开发框架
开发工具/编程工具
服务器环境
ThinkSAAS商业授权:
ThinkSAAS为用户提供有偿个性定制开发服务
ThinkSAAS将为商业授权用户提供二次开发指导和技术支持
让ThinkSAAS更好,把建议拿来。
开发客服微信Git 怎么样把 .git 目录放在一个指定的路径下,而不是项目中。
Git 怎么样把 .git 目录放在一个指定的路径下,而不是项目的目录中。
/questions/505467/can-i-store-the-git-folder-outside-the-files-i-want-tracked
--- 共有 3 条评论 ---
: 公司用的是SVN,所以自己还想用git,所以最好还是不要放在一起比较好啊~
: git submodule 就是这种搞法。
牛逼,谢谢;
git --git-dir=/path/to/repo.git --work-tree=. init && echo "gitdir: /path/to/repo.git" & .git今天看啥 热点:
Git使用子模块引用外部项目Git子模块(submodule)简介
经常有这样的事情,当你在一个项目上工作时,你需要在其中使用另外一个项目。也许它是一个第三方开发的库或者是你独立开发和并在多个父项目中使用的。这个场景下一个常见的问题产生了:你想将两个项目单独处理但是又需要在其中一个中使用另外一个。子模块允许你将一个 Git 仓库当作另外一个Git仓库的子目录。这允许你克隆另外一个仓库到你的项目中并且保持你的提交相对独立。
Git子模块用法
添加一个子模块
首先你要把外部的仓库克隆到你的子目录中。假设你想把 pacman项目加入到你的blog项目中,你通过git submodule add将外部项目加为子模块:
git submodule add https://gitcafe.com/aceking/pacman.git themes/pacman
现在你就在项目里的themes/pacman子目录下有了一个 pacan项目。你可以进入那个子目录,进行变更,加入你自己的远程可写仓库来推送你的变更,从原始仓库拉取和归并等等。
.gitmodules文件: 这是一个配置文件,保存了项目 URL 和你拉取到的本地子目录。
克隆一个带子模块的项目
克隆你刚才创建子模块的项目。你将得到了包含子项目的目录,但里面没有文件:pacman目录存在了,但是是空的。你必须运行两个命令:git submodule init来初始化你的本地配置文件,git submodule update来从那个项目拉取所有数据并检出你上层项目里所列的合适的提交。
git submodule init themes/pacaman
git submodule update
现在你的pacman子目录就处于你先前提交的确切状态了。
Fedora通过Http Proxy下载Git
在Ubuntu Server上安装Git
服务器端Git仓库的创建(Ubuntu)
Linux下Git简单使用教程(以Android为例)
Git权威指南 PDF高清中文版
Git 2分钟指南
Git 的详细介绍:请点这里Git 的下载地址:请点这里
本文永久更新链接地址:
暂无相关文章
相关搜索:
相关阅读:
相关频道:
&&&&&&&&&&&&
Linux教程最近更新}

我要回帖

更多关于 法拉利的标志 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信