首页 > 其他分享 >1:Git的简单介绍

1:Git的简单介绍

时间:2022-10-28 17:35:19浏览次数:70  
标签:Git Linux 控制系统 介绍 版本 简单 服务器 分布式


由来

Git 是目前世界上最先进的分布式版本控制系统。它的出现是由于Linux内核开源项目有很多的参与者,但是绝大多数的Linux内核维护工作都花在了提交补丁和保存归档的繁琐事务上,开始的时候是启用分布式版本控制系统BitKeeper来管理和维护代码.但是后来开发BitKeeper的商业公司同Linux内核开源社区的合作关系结束,回收了开源社的免费使用BitKeeper的权力.所以在无奈之下Linux的开源社区开发一套属于自己的版本控制系统.初期定的Git目标有(而且实现了):

  1. 分支切换速度快
  2. 容量小(压缩)
  3. 简单的设计
  4. 完全分布式
  5. 对非线性开发模式的强力支持(允许上千个并行开发的分支)
  6. 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

版本控制

  1. 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统
  2. 软件开发中采用版本控制系统是个明智的选择。 有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某 个时间点的状态。就算你乱来一气把整个项目中的文件改的改删的删,你也照样可以 轻松恢复到原先的样子。但额外增加的工作量却微乎其微。 你可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异 问题出现的原因,又是谁在何时报告了某个功能缺陷等等。
  3. 版本控制系统分为: 集中化的版本控制系统和分布式版本控制系统
  4. 集中化的版本控制系统: CVS,svn 以及 Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到 这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的 标准做法 这种做法带来了许多好处,现在,每个人都可以在一定程度上看到项目中的其 他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并且管理一个集 中化的版本控制系统; 要远比在各个客户端上维护本地数据库来得轻松容易

事分两面,有好有坏。这么做最显而易见的缺点是中央服务器的单点故障。 如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。

(并不是说服务器故障了就没有办法写代码了,只是在服务器故障的情况下,编写的 代码是没有办法得到保障的.试想 svn 中央服务器挂机一天.你还拼命写了一天代 码,其中 12 点之前的代码都是高质量可靠的,而且有很多闪光点.而 12 点之后的代 码由于你想尝试一个比较大胆的想法,将代码改的面目全非了.这样下来你 12 点之 前做的工作也都白费了 有记录的版本只能是 svn 服务器挂掉时保存的版本!)

要是中央服务器的磁盘发生故障,碰巧没做备份,或者备份不够及时,就会 有丢失数据的风险。最坏的情况是彻底丢失整个项目的所有历史更改记录,而被 客户端偶然提取出来的保存在本地的某些快照数据就成了恢复数据的希望。但这 样的话依然是个问题,你不能保证所有的数据都已经有人事先完整提取出来过。 只要整个项目的历史记录被保存在单一位置,就有丢失所有历史更新记录的风险。

  1. 分布式版本控制系统 : Git,BitKeeper 等,客 户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。这么一 来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本 地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份,更进一步,许多这类系统都可以指定和若干不同的远端代码仓库进行交互。籍此,你就可以在同一个项目中分别和不同工作小组的人相互协作。

分布式的版本控制系统在管理项目时 存放的不是项目版本与版本之间 的差异.它存的是索引(所需磁盘空间很少 所以每个客户端都可以放下整个 项目的历史记录) 分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷:

  1. 断网的情况下也可以进行开发(因为版本控制是在本地进行的)
  2. 使用 github 进行团队协作,哪怕 github 挂了 每个客户端保存 的也都是整个完整的项目(包含历史记录)

Git的安装

​https://git-scm.com/download/win​​​ 自己下载自己安装

1:Git的简单介绍_服务器


有上面两个 Git命令就是安装成功了
点击 git bash Here 菜单之后,可以看到一个终端窗口,在终端里面输入 命令 git --version,就可以看到 git 的版本信息


标签:Git,Linux,控制系统,介绍,版本,简单,服务器,分布式
From: https://blog.51cto.com/u_14782827/5805174

相关文章

  • 以太网卡、IB网卡的详细介绍以及区别分析
    网卡(NIC)全称为网络接口控制器,也被称为网络适配器或网络接口卡,多用于计算机和服务器上,可通过网络连接线(双绞线、光纤线缆等),与交换机、存储设备、服务器、工作站等设备进行互......
  • puppet简单使用
    官方文档:https://puppet.com/docs/puppet/6/puppet_index.html自动化部署工具:Ansible、Chef、Puppet、Saltstack对比一.基本介绍和工作原理1.Puppet介绍puppet是一种......
  • JWT的介绍和使用
    JWT的含义Jsonwebtoken(JWT),是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准(RFC7519),该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(sso)......
  • centos7安装gitlab
    centos7安装gitlabgitlab下载地址 https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.7.8-ce.0.el7.x86_64.rpm 1、安装相关依赖yum-yinstal......
  • 云小课|MRS基础原理之Hudi介绍
    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击......
  • python自学 简单的网站开发 2
    1.一般网站会有多个视图,我们要先在Views.py 中添加多个视图地址。defadd(request):returnHttpResponse("add....")deffind(request):returnHttpRespon......
  • 使用git config --global设置用户名和邮件
    安装好git后,在命令行或终端中使用下面的命令可以设置git自己的名字和电子邮件。这是因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。gitco......
  • 云小课|MRS基础原理之Hudi介绍
    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容​​请单......
  • SVN介绍和使用
    @目录SVN的介绍SVN是什么作用安装包下载SVN的使用检出提交显示日志更新patch的使用创建使用SVN的介绍SVN是什么SVN是subversion的缩写,是一个开放源代码的版本控制系统,通......
  • CH573/579/582 ADC例程介绍
    在adc的例程中共有六种AD测量,1、温度测量,2、单通道测量,3、DMA单通道测量,4、差分通道测量,5、触摸按键测量,6、中断方式单通道测量,接下来我们逐一描述。一、温度测量首先调......