Git + docker介绍

11 篇文章 0 订阅

Git:是一个开源的分布式版本控制系统,2005年,BitMover公司收回Linux社区的版本控制BitKeeper的使用权,Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git。

    Git是一种版本控制系统,是一个命令,是一种工具。

 

Github: 是一个基于git实现的在线代码仓库,包含一个网站界面,向互联网开放,2008年出现,是一个网上的代码托管平台,注册后可以通过Git提交代码到GitHub,且免托管代码,但是代码是

公开的,如果私有代码,必须缴费。

 

GitLab:是一个用于仓库管理系统的开源项目,基于Git的项目管理软件,并在此基础上搭建起来的web服务,可以理解为本地私人版本的GitHub,用于团队内部的代码托管平台;

 

Git和GitLab配合,Git作为版本控制系统和命令工具,GitLab作为Git的代码托管平台托管团队代码;

 

git和svn的区别:

1.Git是分布式的,Svn不是(Svn是集中式控制);

在没有网络的情况下,每一个开发人员都能够从服务器Check out 一份代码,在自己机器上面克隆一个自己的版本库,没有网络一样可以Commit。

2.Git把内容按元数据方式存储,而Svn是按文件。

        Svn所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。

        git目录是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。.git目录的体积大小跟.svn比较,你会发现它们差距很大。

3.Git没有一个全局版本号,而SVN有。

目前为止这是跟SVN相比Git缺少的最大的一个特征。

4.Git的内容的完整性要优于SVN。

5.Git下载下来后,在OffLine状态下可以看到所有的Log,SVN不可以。

6.SVN必须先Update才能Commit,忘记了合并时就会出现一些错误,git还是比较少的出现这种情况。

7.克隆一份全新的目录以同样拥有五个分支来说,SVN是同时复製5个版本的文件,也就是说重复五次同样的动作。而Git只是获取文件的每个版本的 元素,然后只载入主要的Master分支,网上    资料说克隆一个拥有将近一万个提交(commit),五个分支,每个分支有大约1500个文件的 SVN,耗了将近一个小时!而Git只用了1分钟!

8.版本库不同。

   Svn只能有一个指定中央版本库。当这个中央版本库有问题时,所有工作成员都一起瘫痪直到版本库维修完毕或者新的版本库设立完成。而 Git可以有无限个版本库。或者,更正确的说法,每一个Git都是一个版本库,区别是它们是否拥有活跃目录(Git Working Tree)。如果主要版本库(例如:置於GitHub的版本库)发生了什麼事,工作成员仍然可以在自己的本地版本库(local repository)提交,等待主要版本库恢复即可。工作成员也可以提交到其他的版本库Svn。

9.分支不同。

Svn分支是一个完整的目录,且这个目录拥有完整的实际文件。如果工作成员想要开啟新的分支,那将会影响“全世界”!每个人都会拥有和你一样的分支。如果你的分支是用来进行破坏工作(安检测试),那将会像传染病一样,你改一个分支,还得让其他人重新切分支重新下载;

Git每个工作成员可以任意在自己的本地版本库开啟无限个分支。某个开发可以开一个分支,做他特定的任务。完全不需担心妨碍其他工作成员。只要他不合并及提交到主要版本库,没有一个工作成员会被影响。

10.提交不同。

在SVN,当你提交你的完成品时,它将直接记录到中央版本库。当你发现你的完成品存在严重问题时,你已经无法阻止事情的发生了。如果网路中断,你根本没办法提交。

        Git的提交完全属於本地版本库的活动。而你只需“推”(git push)到主要版本库即可。Git的“推”其实是在执行“同步”(Sync),可以不依赖网络做任何事情,对分支和合并有更好的支持。

 

 

Docker容器:

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker的思想来自于集装箱,可以把货物想成各种应用系统,把货船想象成各种操作系统环境。

在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。

各种不同的应用系统,我们通过docker容器包装好之后,可以在不同的操作系统环境中运行。从Windows船搬到Linux船,我们只需要把集装箱搬过来,直接就可以运行。

Docker类似于虚拟机,但是虚拟机是基于虚拟化硬件仿真机制,对系统要求很高,docker是容器,使用共享的操作系统,这意味着Docker在使用系统资源方面比虚拟机管理程序要高效得多。容器不是对硬件进行虚拟化处理,而是驻留在单单一个Linux实例上。这反过来意味着,你可以“丢弃没有用的99.9%的虚拟机垃圾,剩下一个小巧简洁的胶囊式容器,里面含有你的应用程序”。

Docker可以用来做软件发布的一个软件管理工具,用来打包软件运行环境和基于运行环境开发的软件,打包好的运行环境(即系统)和基于运行环境开发的软件会生成一个镜像,这个镜像可以在任意操作系统发布,如果系统原来在Windows上,后来想迁移到Linux上,按照我们现有的条件,是需要去Linux上面部署虚拟机,然后一一配置环境,再进行测试,能否正常使用,但是通过Docker,可以利用镜像直接复制一份放到Linux上面,不需要安装虚拟机,不需要配置任何软件环境。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值