注册 登录

清河洛

git简介及安装

qingheluo2024-02-02清河洛656
版本控制版本控制是用于管理开发过程中文件变更的技术,用于记录和追踪项目中的文件、目录等内容的变化历史,以便能够查阅特定版本的修订情况,可以回溯到之前的任何版本,以解决问题或确认更改版本控制大致可以分为三类,每一类都是一个时代的产物,新生事物总会取代陈旧事物 LVCS(Local VCS):本地版本控制 CVCS(Central VCS):集中式版本控制 DVCS(Distributed VCS):分布式版本控制 在LVCS之前,都是通过手动复制复制项目目录或重命名来解决版本控制问题的 LVCS:在本地建一个仓库,记录每一个版本和版本之间的关系,解决了手动维护的问题,代表是rcs ...

版本控制

版本控制是用于管理开发过程中文件变更的技术,用于记录和追踪项目中的文件、目录等内容的变化历史,以便能够查阅特定版本的修订情况,可以回溯到之前的任何版本,以解决问题或确认更改

版本控制大致可以分为三类,每一类都是一个时代的产物,新生事物总会取代陈旧事物

LVCS(Local VCS):本地版本控制
CVCS(Central VCS):集中式版本控制
DVCS(Distributed VCS):分布式版本控制

在LVCS之前,都是通过手动复制复制项目目录或重命名来解决版本控制问题的

LVCS:在本地建一个仓库,记录每一个版本和版本之间的关系,解决了手动维护的问题,代表是rcs
      一个很大的问题,就是没法多人协作
CVCS:把仓库搬到远端机器,大家都访问同一个远程仓库,解决的不能多人协作的问题,代表是SVN
    中心的服务器出问题,那代码全部丢失,所以大公司一般都有很好的容灾机制
DVCS:没有中央服务器 , 每个电脑就是一个完整的版本库,同时分布式的设计又让每一个节点都能成为远端,代表是Git
    随着开源运动的爆发,集中式版本控制很难适应全球多人写作的模式

版本控制系统的特点

跟踪更改:每当文件被编辑或更新,版本控制系统都会为其创建一个快照,即“版本”
保存历史:这些快照会被永久保存,使得开发者可以随时回到某个特定的版本
协作支持:版本控制系统特别适合于多人的协同开发环境,因为它允许开发者同时访问并编辑同一个文件的不同版本
安全性和一致性:由于每个开发者只能看到和操作自己的版本,版本控制系统避免了文件在不同开发者之间不一致的风险

Linus在1991年创建了开源的Linux,靠全世界热心的志愿者参与,Linux系统不断发展,已经成为最大的服务器系统软件了

当时是处于集中式版本控制的时代,免费的有CVS、SVN等,但是由于这些系统不仅速度慢,还需要时刻联网,Linus坚定地反对CVS和SVN,其他商用的版本控制系统虽然相对好用,但需要付费,和Linux的开源精神不符

在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码

到了2002年,Linux系统已经发展了十年了,代码库之大让Linus很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满,于是Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统

但是在2005年,由于Linux社区牛人聚集,来自世界各地,不免沾染了一些梁山好汉的江湖习气。开发Samba的Andrew试图破解BitKeeper的协议,被BitMover公司发现了,于是BitMover公司收回了Linux社区的免费使用权

Linus护犊子的对BitMover公司比了个国际手势(开玩笑的),然后自己一个人花了两周时间用C写了一个分布式版本控制系统,这就是Git(只能说牛人)

Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub

Git的设计理念

分布式版本控制:Git不依赖于中央服务器,每个开发者都可以拥有完整的代码历史和版本信息
哈希算法:Git使用SHA-1哈希算法来生成对象的名称,以确保完整性和数据的一致性
快速性能:Git针对大规模项目进行了优化,能够在短时间内处理大量的版本控制操作
分支管理:Git非常强大的分支管理功能,可以轻松创建、合并和切换分支,使多人协作开发变得更加灵活

Git本地结构

Git本地仓库主要由三个部分组成:工作区(workspace)、暂存区(staging area)、版本库(repository)

工作区(Working Directory):工作区是在电脑中看到和编辑的所有项目文件的目录
暂存区(Staging Area):暂存区是文件变动后的中间状态,可以将修改的文件添加到暂存区,准备提交到版本库
版本库(Repository):版本库是Git最重要的部分,它包含了项目的完整历史记录和元数据
本地仓库(Local Repository):本地仓库是你在本地计算机上保存的完整项目历史记录。
远程仓库(Remote Repository):远程仓库是保存在网络上的项目版本库,例如GitHub或Gitee。

Git安装

Git官网网站是:https://git-scm.com/

在官网上有各个系统的下载链接及安装方式,按照指定的方式下载安装即可



网址导航