git push clone 参数具体解析

news2024/12/23 22:45:06

1 问题背景

git远程仓库有很多命令,但是教程里面讲解的都是特别模糊的。

2 命令实例解析

2.1 git branch -vv -a命令具体解析

在开始下面的命令解析之前,我们一定要学会git branch -vv -a这个命令,这个是查询本地仓库+远程仓库+跟踪关系最全的命令了,它可以查询:

本地仓库使用git remote add命令映射过的所有远程仓库的所有分支。
使用4大跟踪远程分支命令关联了所有远程仓库的所有远程跟踪分支的所有本地分支(4大跟踪远程分支命令在下面章节)。
在这里插入图片描述
图片解析:

有8个分支:一个前面有*星号且绿色的dev分支,一个白色的master分支,6个有remotes/字符串开头且红色的远程分支。

2个本地分支中,注意中括号中的蓝色字符串[origin/dev][origin/master],它们代表本地仓库的dev和master分支分别远程跟踪了远程仓库origindevmaster远程分支。

其中红色的remotes/origin/HEAD ->origin/master远程分支比较特殊,origin/HEAD就像一个指针,表示默认分支,下图中它指向origin/master,代表着origin/master是默认分支。

可以看到曾经用git remote add命令映射的2个远程仓库remotes/liaoremotes/originremotes/liao是廖雪峰老师的Git教程的远程仓库,remotes/origin是用来测试的远程仓库。

2.2 git remote add 命令具体解析

2.2.1 命令+选项+参数-解析

命令git remote add <shortname> <url>:将远程仓库唯一的URL 映射成为 在本地仓库中对远程仓库起的别名<shortname>。(注意:git remote add <shortname> <url>只负责映射!它不会产生下载或上传的流量!只有git clone,git fetch,git pull等才产生下载或上传的流量!)

参数<shortname>:在本地仓库中对远程仓库起的别名。而我们按照Git官方教程,一般会把参数<shortname>设置为origin
为什么要强调在本地仓库中?因为我们要知道git remote add <shortname> <url>是在我们自己的本地仓库对远程仓库起的别名,这个别名只能在我们自己的本地仓库使用,在真正的远程仓库那边,远程仓库的名字是一个绝对唯一的URL(比如:git@github.com:michaelliao/learngit.git),而不是origin。甚至我们的开发团队成员也可以自定义这个开发团队成员他个人的本地仓库中对远程仓库起的别名,比如官方教程2.5 Git 基础 - 远程仓库的使用中的参考命令git remote add pb https://github.com/paulboone/ticgit,官方给参数<shortname>设置为pb而不是origin了。

参数:远程仓库在互联网上唯一的URL。比如廖雪峰的Git仓库的SSH地址:git@github.com:michaelliao/learngit.git

2.2.2 命令实例解析git remote add origin git@github.com:michaelliao/learngit.git

在Git官方教程2.5 Git 基础 - 远程仓库的使用中,它对git remote add <shortname> <url>的解释是:

运行 git remote add <shortname> <url> 添加一个新的远程 Git 仓库,同时指定一个你可以轻松引用的简写:

//Git官方教程2.5 Git 基础 - 远程仓库的示例
$ git remote origin
$ git remote add pb https://github.com/paulboone/ticgit
$ git remote -v
origin https://github.com/schacon/ticgit (fetch)
origin https://github.com/schacon/ticgit (push)
pb https://github.com/paulboone/ticgit (fetch)
pb https://github.com/paulboone/ticgit (push)

在廖雪峰Git教程添加远程库中,把一个已有的本地仓库与远程仓库关联,也用到了以下命令:

$ git remote add origin git@github.com:michaelliao/learngit.git

我们值得注意的是,上面的2份教程对该命令的解释都是:git remote add 命令用于添加一个新的远程 Git 仓库或者把一个已有的本地仓库与远程仓库关联。其实这些都不准确。

git remote add <shortname> <url>命令真实的用途是:将远程仓库唯一的URL 映射成为 在本地仓库中对远程仓库起的别名<shortname>。这是因为 远程仓库唯一的URL 实在是太长了,比如git remote add origin git@github.com:michaelliao/learngit.git命令中的git@github.com:michaelliao/learngit.git,Git使用者每次使用涉及远程仓库的命令都要加这么长的名字作为参数实在太麻烦了,所以将远程仓库唯一的URL 映射成为 <shortname>,这样使用涉及远程仓库的命令只需要写 本地仓库中对远程仓库起的别名.

2.3 git push <远程仓库名> <本地分支名>:<远程分支名>命令具体解析

2.3.1 命令+选项+参数-解析

git push <远程仓库名> <本地分支名>:<远程分支名>:将本地分支推送到远程仓库的远程分支。(注意:这里的远程仓库名依然是在本地仓库中对远程仓库起的别名)

<远程仓库名>:在本地仓库中对远程仓库起的别名,如上面命令解析2(1)中设置的origin

<本地分支名>:本地分支的名称,比如我们在项目开发,一般主分支(也是默认分支)叫做master,一些新功能开发的分支叫做developfeature。这些我们在我们自己电脑本地用git branch创建的分支就是本地分支。

<远程分支名>:在远程仓库的普通分支,比如远程仓库上的master,自己在远程仓库创建的分支,以及自己推送到远程仓库上去的在远程仓库上的分支。

(注意:<远程分支名>与 <远程仓库名>的情况不同:

(i)<远程分支名>的取名由git push中的远程分支名决定,一般Git使用者会省略<远程分支名>这个参数,所以Git会默认把<本地分支名>设置为<远程分支名>;

(ii)<本地分支名>无论在远程仓库还是本地仓库就只有一个名字,不像<远程分支名>有一个绝对URL地址名字和一个在本地仓库中的别名。)

2.3.2 git push <远程仓库名> <本地分支名>:<远程分支名>命令的多种常用写法

2.3.2.1 git push

在使用git push命令之前,因为省略了远程仓库名+本地分支名+远程分支名3个参数中必要填写的远程仓库名+本地分支名这2个参数,所以当前分支曾经必须被4大跟踪远程分支命令远程跟踪到远程仓库的远程分支。(虽然你可能会说Git可以用当前分支的名字自动填补本地分支名+远程分支名,这样会导致命令的作用太狭隘,所以Git不允许;另外Git再智能也不知道远程仓库名这个参数,Git又不会读心术来知道Git使用者想用哪个远程仓库,所以必须至少补上远程仓库名+本地分支名这2个参数)

  1. 如果当前分支曾经未被远程跟踪,那么GitBash会报错:
    在这里插入图片描述
    错误提示中的upstream branch就是上游分支(别名:远程分支),就是因为当前分支曾经未被远程跟踪,那么Git也不知道我们省略的 远程仓库名+本地分支名+远程分支名 3个参数中必要填写远程仓库名+本地分支名这2个参数到底是什么呀!所以报错了。

  2. 如果当前分支曾经被远程跟踪,那么GitBash就会默认把参数本地分支名设置为当前分支,把参数远程仓库名+远程分支名设置为远程追踪的远程仓库+远程分支。这样这3个被省略的参数就被填补上了,所以不会报错。
    这也解释了《Android群英传:神兵利器》中:为什么git push指令加了-u参数后,往后再push代码只需要git push或git push origin master就可以了。
    在这里插入图片描述
    git push的意义:当Git使用者将当前分支远程跟踪到远程仓库的远程分支后,可以直接用git push命令向远程仓库推送更新。这样,Git使用者再也不用每次输入此格式命令git push origin master来向远程仓库推送更新,因为这个命令太长了导致Git使用者体验不佳。

2.3.2.2 git push <远程仓库名> 举例:git push origin

在使用git push <远程仓库名>命令之前,因为省略了 本地分支名+远程分支名 2个参数中必要填写本地分支名这1个参数,所以当前分支曾经必须被4大跟踪远程分支命令远程跟踪到远程仓库的远程分支。(虽然你可能又会说Git可以用当前分支的名字自动填补本地分支名+远程分支名,但是Git认为这本地分支名+远程分支名两个参数如果直接默认当前分支的名字会让git push <远程仓库名> 命令变得狭隘化,Git认为git push <远程仓库名> 应该是可以在某一分支中随意指定要Push的任意分支,而不应该直接默认当前分支的名字自动填充缺省参数来给Git使用者偷懒,所以Git坚决规定:如果当前分支未被远程跟踪,那么本地分支名必填,远程分支名选填)

如果当前分支曾经未被远程跟踪,那么GitBash会报错:
在这里插入图片描述
错误提示中的upstream branch就是上游分支(别名:远程分支),就是因为当前分支曾经未被远程跟踪,那么Git也不知道我们省略的 本地分支名+远程分支名 2个参数中必要填写的本地分支名这1个参数到底是什么呀!所以报错了。

如果当前分支曾经被远程跟踪,那么GitBash就会默认把参数本地分支名设置为当前分支,把参数远程分支名设置为远程追踪的远程分支。这样这3个被省略的参数就被填补上了,所以不会报错。

个人认为,与git push 类似。

分析:
git分支与远程主机存在对应分支,可能是单个可能是多个。
simple方式:如果当前分支只有一个追踪分支,那么git push origin到主机时,可以省略主机名。
matching方式:如果当前分支与多个主机存在追踪关系,那么git push --set-upstream origin master(省略形式为:git push -u origin master)将本地的master分支推送到origin主机(–set-upstream选项会指定一个默认主机),同时指定该主机为默认主机,后面使用可以不加任何参数使用git push。
matching方式,会推送所有有对应的远程分支的本地分支。
Git 2.0版本之前,默认采用matching方法,现在改为默认采用simple方式。

2.3.2.3 git push <远程仓库名> <本地分支名> 举例:git push origin master

git push <远程仓库名> <本地分支名>是第一次Push分支时必须使用的命令(因为第一次Push分支必须指定<远程仓库名> <本地分支名>),它省略了远程分支名,但是根据Git官方教程介绍,如果Git使用者没有填写<远程分支名>,Git会用已经填写的<本地分支名>来填补缺省的<远程分支名>。

Git官方教程-3.5 Git 分支 - 远程分支是这么描述的:

如果希望和别人一起在名为 serverfix 的分支上工作,你可以像推送第一个分支那样推送它。 运行 git push (远程仓库名) (远程分支名):$ git push origin serverfix

这里有些工作被简化了。 Git 自动将serverfix分支名字展开为 refs/heads/serverfix:refs/heads/serverfix,那意味着,“推送本地的 serverfix 分支来更新远程仓库上的 serverfix 分支。” 我们将会详细学习 Git 内部原理 的 refs/heads/ 部分,但是现在可以先把它放在儿。 你也可以运行 git push origin serverfix:serverfix,它会做同样的事 - 相当于“推送本地的 serverfix 分支,将其作为远程仓库的 serverfix 分支”。

注意:git push <远程仓库名> <本地分支名>并未使用短选项-u或长选项–set-upstream,所以它并未使得当前分支远程跟踪了远程分支,所以往后再次Push当前分支时依然要使用git push <远程仓库名> <本地分支名>命令,不可以缩短为git push或者git push <远程仓库名>

2.3.2.4 git push -u <远程仓库名> <本地分支名> 举例:git push -u origin master

短选项-u用于指定git push命令中的<远程仓库名><远程分支名>为<本地分支名>所跟踪的上游分支。
相比于git push <远程仓库名> <本地分支名>,因为git push -u <远程仓库名> <本地分支名>使用了短选项-u,所以它使得当前分支远程跟踪了远程分支。进而,往后再次Push当前分支时可以直接使用git push或者git push <远程仓库名>命令。

2.3.2.5 git push --set-upstream <远程仓库名> <本地分支名> 举例:git push --set-upstream origin master

相比于git push -u <远程仓库名> <本地分支名>,git push --set-upstream <远程仓库名> <本地分支名>把短选项-u换成了长选项–set-upstream。因为–set-upstream长选项等价的短选项是-u,所以git push --set-upstream <远程仓库名> <本地分支名>与git push -u <远程仓库名> <本地分支名>是等价的。

2.3.2.6 git push <远程仓库名> <本地分支名>:<远程分支名> 举例:git push origin serverfix:awesomebranch

一般善于偷懒的Git使用者会直接使用git push -u <远程仓库名> <本地分支名>命令来免去填写<远程分支名> 这个参数的麻烦。但是“免去填写<远程分支名> 这个参数的麻烦”只适用于本地分支名与被推送到的远程分支名相同时的情况。
根据Git官方教程-3.5 Git 分支 - 远程分支的描述:

在本地分支名是serverfix的情况下,如果并不想让远程仓库上的分支也叫做 serverfix,可以运行 git push origin serverfix:awesomebranch 来将本地的 serverfix 分支推送到远程仓库上的 awesomebranch 分支。这样就可推送本地分支到一个命名不相同的远程分支。

2.4 git clone [ ]命令具体解析

2.4.1 命令+选项+参数-解析

  1. 命令git clone <repo> [<dir>]:复制远程仓库中HEAD指针指向的分支(默认是master分支,其他分支一律不复制)中的每一次提交记录和所有提交版本的文件,粘贴到本地文件夹当前GitBash所在路径/[<dir>],如果Git使用者未填写<dir>,那么默认为远程仓库<repo>的项目名,并自动默认远程仓库名称为origin和自动设置本地 master 分支远程跟踪远程仓库的 HEAD指针指向的分支(默认是master分支)。

  2. 参数<repo>:远程仓库在互联网上唯一的URL。比如廖雪峰的Git仓库的SSH地址:git@github.com:michaelliao/learngit.git

  3. 参数[<dir>]:粘贴下来的所有项目文件应该存放的路径(既可是绝对路径也可是相对路径),该路径的最后一个字符串代表的是项目根目录(也是:本地仓库名)。若Git使用者未填写<dir>,那么默认为远程仓库<repo>的项目名。
    下图便是参数[<dir>]写入绝对路径,hello为项目根目录(也是:本地仓库名)。
    在这里插入图片描述

2.4.2 命令实例解析-git clone git@github.com:jedlee6/RemoteRepositoryTest.git

在这里插入图片描述
上图的git clone git@github.com:jedlee6/RemoteRepositoryTest.git really命令就是克隆远程仓库git@github.com:jedlee6/RemoteRepositoryTest.git到本地仓库really文件夹中。
同时使用git branch -vv -a来查询查询本地仓库+远程仓库+跟踪关系,我们发现:

git clone <repo> [<dir>]只复制远程仓库<repo>中HEAD指针指向的分支,其他分支一律不复制。
虽然远程仓库有4大分支(其中较为特殊的remotes/origin/HEAD ->origin/master远程分支不包括在内),但是克隆到本地仓库的只有远程仓库<repo>中HEAD指针指向的master分支,这也证实了我们对命令git clone <repo> [<dir>]的一段定义:“复制远程仓库中HEAD指针指向的分支(默认是master分支)中的每一次提交记录和所有提交版本的文件。”
git clone命令会自动默认远程仓库名称为origin,设置本地 master 分支远程跟踪克隆的远程仓库中HEAD指针指向的master分支。
我们可以在上图片中,绿框圈住的蓝色字符串origin/master看到本地 master 分支远程跟踪远程分支master。

3 其他注意事项

3.1 分支与远程分支与跟踪分支与远程跟踪分支的区别

有一点特别重要:分支不是某一条提交记录串起来的线,分支是一个指针!
[1]git的跟踪分支和远程跟踪分支学习笔记
[2]Git-远程分支,远程跟踪分支,跟踪分支的区别

3.2 四大跟踪远程分支命令
[3]git跟踪远程分支,查看本地分支追踪和远程分支的关系(简书这篇文章里面git branch -u a b命令的a b写反了)
[4]Git本地分支与远程分支的追踪关系
[5]git 设置分支跟踪关系
[6]git 本地分支追踪远程分支

一个本地分支只能远程跟踪一个远程分支,如果设置新的远程跟踪的远程分支,新的会代替旧的。git remote add可以映射多个远程仓库。

在本地创建分支用跟踪远端非master分支,用git checkout -b newbranch origin/special,该命令会以远端special分支的内容创建本地的newbranch分支,从而可以在远端special分支的基础上开发。
如果想要将本地分支与远程分支设置为不同名字,你可以轻松地将上面的newbranch设置为不同的名字:git checkout -b sf origin/serverfix。现在,本地分支 sf 会自动从 origin/serverfix 拉取。

上面的命令也可以简化为git checkout --track origin/special该命令会在本地创建一个special分支用于跟踪远端的special分支并切换到本地special分支。

设置已有的本地分支跟踪一个刚刚拉取下来的远程分支,或者想要修改正在跟踪的上游分支,你可以在任意时间使用 -u 或 --set-upstream-to 选项运行 git branch 来显式地设置,即git branch -u origin/serverfix。

3.3 为什么要跟踪远程分支?跟踪远程分支的作用与意义?

在跟踪分支里输入git push,Git 会自行推断应该向哪个服务器的哪个分支推送数据。反过来,在跟踪分支里运行git pull 会获取所有远程索引,并把它们的数据都合并到本地分支中来,同时Git 还能自动地识别去哪个服务器上抓取、合并到哪个分支。

3.4 --set-upstream选项与–set-upstream-to选项的区别

--set-upstream选项用于指定git push命令中的<远程仓库名>的<远程分支名>为<本地分支名>所跟踪的上游分支。举例:git push --set-upstream origin master。并且--set-upstream长选项等价的短选项是-u,所以上面的举例可以写成git push -u origin master,这两个命令是等价的。
--set-upstream-to选项用于git branch,举例:git branch --set-upstream-to origin/dev dev。并且--set-upstream-to长选项等价的短选项是-u,所以上面的举例可以写成git branch -u origin/dev dev,这两个命令是等价的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/183318.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《从0开始学大数据》之ZooKeeper是如何保证数据一致性的

背景 在分布式集群系统中&#xff0c;比如两个应用程序都需要对一个文件路径进行写操作&#xff0c;但是如果两个应用程序对于哪台服务器是主服务器的判断不同&#xff0c;就会分别连接到两个不同的 NameNode 上&#xff0c;并都得到了对同一个文件路径的写操作权限&#xff0…

振弦采集模块配置工具VMTool 扩展功能指令生成器与实时曲线

振弦采集模块配置工具VMTool 扩展功能指令生成器与实时曲线 指令生成器 &#xff08; 1&#xff09; 指令生成 指令生成器可根据需要生成符合 MODBUS 和 AABB 通讯协议的读取和控制指令。 通过点击串口调试工具内的【 指令生成器】 按钮&#xff0c;可打开指令生成器窗口&#…

【SpringBoot高级篇】SpringBoot集成XXL-JOB分布式任务调度平台

【SpringBoot高级篇】SpringBoot集成XXL-JOB分布式任务调度平台简介下载源码部署任务调度平台执行SQL脚本部署任务平台简单使用初始化测试项目pom依赖SampleXxlJob修改配置调度平台配置执行器任务管理添加任务简介 XXL-JOB是一个分布式任务调度平台&#xff0c;其核心设计目标…

连续函数的运算与初等函数的连续性——“高等数学”

各位CSDN的uu们你们好呀&#xff0c;今天&#xff0c;小雅兰的内容是连续函数的运算与初等函数的连续性&#xff0c;上篇博客我们学到了函数的连续性和间断点&#xff0c;这篇博客相当于是上篇博客的一个补充&#xff0c;好吧&#xff0c;现在就让我们进入高等数学的世界吧 一、…

【刷题】不用加减乘除做加法

这是一道简单的数学题。但是比较繁琐&#xff0c;需要有耐心。 目录 前言 一、找规律 二、怎么实现加法&#xff1f; 总结 前言 这道题不让用四则运算符做加法&#xff0c;于是我第一反应是用位运算。 难道转成二进制再使用位运算吗&#xff0c;显然不需要&#xff0c;列草稿可…

Java 开发环境配置 “JDK”(超详细整理,适合新手入门)

前言 &#x1f4dc; “ 作者 久绊A ” 专注记录自己所整理的Java、web、sql等&#xff0c;IT技术干货、学习经验、面试资料、刷题记录&#xff0c;以及遇到的问题和解决方案&#xff0c;记录自己成长的点滴 目录 前言 一、什么是JDK&#xff1f; 1、大概介绍 2、详细介绍 …

MySQL进阶——触发器

1.触发器定义 同存储过程和函数类似&#xff0c;MySQL中的触发器也是存储在系统内部的一段程序代码&#xff0c;可以把它看作是一个特殊的存储过程。所不同的是&#xff0c;触发器无需人工调用&#xff0c;当程序满足定义条件时就会被MySQL自动调用。这些条件可以称为触发事件…

Weapp影视评分项目开发(04):三方组件的使用

知识点 三方组件库的安装与使用 computed 的安装与使用 新建代码分支 我们以 master 为基准&#xff0c;在 gitee 上新建代码分支 component&#xff0c;并在该分支上进行代码开发。命令如下&#xff1a; git pull // 拉取 component 分支 git checkout component // 切换到…

哪款无线耳机音质好?发烧友推荐四大音质超好的蓝牙耳机

蓝牙耳机因为摆脱了线的束缚&#xff0c;使用起来会更方便&#xff0c;近几年在人们的日常生活中也越来越常见。哪款无线耳机音质好&#xff1f;在此&#xff0c;我来给整理了几款发烧友都在推荐的好音质蓝牙耳机&#xff0c;一起来看看吧。 一、南卡小音舱蓝牙耳机 售价&…

推荐系统之ABTest实验中心

5.3 ABTest实验中心 学习目标 目标 无应用 无 个性化推荐系统、搜索引擎、广告系统&#xff0c;这些系统都需要在线上不断上线&#xff0c;不断优化&#xff0c;优化之后怎么确定是好是坏。这时就需要ABTest来确定&#xff0c;最近想的办法、优化的算法、优化的逻辑数据是正向…

Linux | 人生苦短,我用Vim【最受欢迎的编辑器】

一探顶级编辑器——Vim一、初次见面&#xff0c;你好vim1、vim的基本概念2、IDE与编辑器的区别3、vim中的五种常见模式介绍二、初出茅庐&#xff0c;vim基本操作1、安装vim&#xff0c;进入vim2、vim中的模式切换&#x1f4fa;三、初露锋芒&#xff0c;vim指令集1、&#x1f52…

数据库系统概论——关系代数详解

文章目录1、关系代数概述1.1 传统的集合运算1.2 专门的关系运算1.2.1 选择运算1.2.2 投影&#xff08;Projection&#xff09;1.2.3 连接&#xff08;Join&#xff09;1.2.4 两类常用连接运算1.2.5 除&#xff08;Division&#xff09;1、关系代数概述 关系代数是一种抽象的查…

虹科分享 | 虹科智能自动化2022文章精选

虹科智能自动化事业部一直围绕着工业自动化、能源管理与楼宇自动化三大方向&#xff0c;为客户提供最满意的技术服务和最适合的解决方案&#xff0c;并结合客户需求、行业发展动向和产品资讯&#xff0c;虹科智能自动化团队为大家带来了丰富的技术文章和应用案例。温故而知新&a…

【SpringCloud复习巩固】Nacos

Nacos 链接&#xff1a;https://pan.baidu.com/s/1Ct6upj-kpLuVwyNpk_3KMw 提取码&#xff1a;yyac 目录 一.Nacos 1.1认识Nacos 1.2安装Nacos 1.2.1下载安装包 1.2.2解压到任意非中文目录 1.2.3介绍 1.2.4启动 1.2.5访问 1.3服务注册到Nacos 1.3.1在cloud-demo父工程…

APP漏洞挖掘(二)同开发商的多款APP存在通用漏洞

0x01 前言 测某一APP时&#xff0c;根据信息收集测试&#xff0c;发现APP的后台系统存在SQL注入、XSS、弱口令、信息泄漏等漏洞&#xff0c;此APP本身存在逻辑漏洞与SQL注入漏洞&#xff0c;再通过观察酷传搜索的结果发现此APP开发商开发了三十几个APP&#xff0c;猜测可能存在…

Vue笔记01 模板语法,数据代理,事件处理,计算监听属性,绑定样式,列表渲染

基本使用 引入vue 创建vue实例并关联容器 一个Vue实例只应对应一个容器 一个Vue实例可以有多个组件 模板语法 使用Vue实例中数据 root容器中代码被称为vue模板 语法分为插值语法和指令(v-xxx) 插值语法 绑定标签体内容 {{}}中的可以是js表达式&#xff08;特殊的js代码&…

手把手带你调参Yolo v5(一)

来源&#xff1a;投稿 作者&#xff1a;王同学 编辑&#xff1a;学姐 YOLO系列模型在目标检测领域有着十分重要的地位&#xff0c;随着版本不停的迭代&#xff0c;模型的性能在不断地提升&#xff0c;源码提供的功能也越来越多&#xff0c;那么如何使用源码就显得十分的重要&am…

Kylin基本介绍、特点、架构

目录1. Kylin的基本介绍2. Kylin的特点3. Kylin的架构1. Kylin的基本介绍 Kylin是一种MOLAP(Multidimensional OLAP)&#xff0c;基于多维数据集&#xff0c;需要预计算。另一种OLAP是ROLAP(Relational OLAP)&#xff0c;基于关系型数据库&#xff0c;不需要预计算&#xff0c…

单链表的使用方法.数据结构(三)[上]

前言 提示&#xff1a;文本为数据解构(三)单链表&#xff1a; 本文具体讲解单链表的具体使用方法 提示&#xff1a;以下是本篇文 系列文章目录 第一章 数据解构(一) 第二章 顺序表的具体使用方法.数据解构(二) 文章目录 前言 系列文章目录 文章目录 一、单链表视图 二、…

JavaWeb—Tomcat服务器

1 tomcat概述及基本使用 概述 tomcat是apache软件基金会的jakatai项目组的一个核心项目&#xff0c;由apache、sun和其他一些公司及个 人共同开发而成。由于有了sun公司的参与和支持&#xff0c;最新的servlet、jsp规范总是能在tomcat中得到 体现。因为tomcat技术先进、性能稳定…