🐳Git概述
- 🧊1. Git发展历史
- 🧊 2. Git与SVN的区别
- 🧊3. Git本地结构
- 🧊4. 代码托管中心
- 🪟4.1 代码托管中心是什么?
- 🪟4.2 托管中心种类
🧊1. Git发展历史
Git
的发展历史可以追溯到2005
年。当时,Linux
的创始人之一Linus Torvalds
决定放弃使用BitKeeper
作为Linux
内核版本控制系统的工具,因为BitKeeper
公司收回了免费许可证。
于是,Linus
决定自己开发一个新的版本控制系统,这就是Git
。Git
的开发初衷是为了管理Linux
内核的源代码。他希望这个新的系统能够快速、高效地处理大规模的分布式项目。
Git
的设计理念主要包括以下几个重要特点:
-
分布式版本控制:Git不依赖于中央服务器,每个开发者都可以拥有完整的代码历史和版本信息。
-
哈希算法:Git使用SHA-1哈希算法来生成对象的名称,以确保完整性和数据的一致性。
-
快速性能:Git针对大规模项目进行了优化,能够在短时间内处理大量的版本控制操作。
-
分支管理:Git非常强大的分支管理功能,可以轻松创建、合并和切换分支,使多人协作开发变得更加灵活。
随着时间的推移,Git
逐渐受到了全球开发者的认可和使用。它不仅仅应用于Linux
内核开发,也广泛应用于其他开源项目和商业项目中。
自2005
年以来,Git
经历了许多改进和扩展。一些重要的里程碑包括:
- 2006年:Git成为开源项目并迅速获得广泛关注和支持。
- 2010年:Git的推出成为Linux内核的主要版本控制系统,这标志着Git已经成为了一个可靠且广泛使用的工具。
- 2013年:Git迎来了2.0版本,该版本引入了一些新特性,如支持HTTP协议的“smart”传输和“dumb”传输协议。
- 2014年:Git迎来了2.1.0版本,该版本引入了轻量级工作流和更强大的分支操作等功能。
- 2016年:Git迎来了2.9.0版本,该版本引入了新的性能优化、安全性改进以及对非英语语言的支持。
- 2021年:Git已经成为了全球数百万开发者的首选版本控制系统,涵盖了各种规模的组织和项目。
Git
的发展历史是一个不断演进和改进的过程。目前,Git
已经成为最流行的版本控制系统之一,并且有一个庞大的社区支持和贡献。
🧊 2. Git与SVN的区别
Git
和SVN
是两种常见的版本控制系统,它们在存储方式、使用方式和管理模式等方面存在明显的区别。
- 存储方式:
Git
以元数据方式存储,即存储的是文件里的内容,以key/value
格式存储,通过key
值作为唯一标识;而SVN
则是直接存储文件,以文件名作为唯一标识。 - 使用方式:
Git
的使用流程是add
(提交到本地暂存区)->commit
(提交到本地仓库)->push
(提交到远程仓库);而SVN
则是直接提交到远程仓库。 - 管理模式:
Git
是分布式系统,每个开发者都在本地维护一个完整的版本历史,即使在无法访问远程服务器的情况下,开发者仍然可以独立地进行版本管理;而SVN
则是集中式系统,开发者需要依赖中央服务器进行版本管理。 - 分支和合并:
Git
的分支和合并操作相对简单,可以在本地轻松创建和管理分支,并且合并操作可以通过命令行完成;而SVN
的分支和合并操作相对复杂,需要在服务器端创建和管理分支,并且合并操作需要通过界面操作完成。 - 版本号:
Git
没有全局版本号,每个仓库有自己的版本号,可以通过SHA-1
哈希值唯一标识;而SVN
有一个全局版本号,每个文件和目录都有一个版本号,通过数字表示。 - 安全性:
Git
在本地存储了完整的版本历史,所以即使服务器被攻击,开发者也可以通过本地仓库找回数据;而SVN
的版本历史存储在服务器上,如果服务器被攻击或数据丢失,开发者将无法恢复数据。 - 项目管理:
Git
在项目管理中更加灵活,可以更容易地支持非线性开发和分布式开发;而SVN
相对较为限制,更适合于线性开发模式。
总结来说,Git
和SVN
各有其优点和缺点。Git
的分布式特性和强大的分支管理功能使其在非线性开发和分布式开发中更具优势;而SVN
的集中式特性和简洁的界面使其在小型项目和线性开发项目中更容易使用。在具体使用中,开发者可以根据项目需求和团队习惯来选择合适的版本控制系统。
🧊3. Git本地结构
Git 本地仓库主要由三个部分组成:工作区(workspace)、暂存区(staging area)、版本库(repository)。
- 工作区(Working Directory):工作区是你在电脑中看到和编辑的所有项目文件的目录。
- 暂存区(Staging Area):暂存区是文件变动后的中间状态,你可以将修改的文件添加到暂存区,准备提交到版本库。
- 版本库(Repository):版本库是Git最重要的部分,它包含了项目的完整历史记录和元数据。
- 本地仓库(Local Repository):本地仓库是你在本地计算机上保存的完整项目历史记录。
- 远程仓库(Remote Repository):远程仓库是保存在网络上的项目版本库,例如
GitHub
或Gitee
。
🧊4. 代码托管中心
🪟4.1 代码托管中心是什么?
在Git
中,代码托管中心充当了远程仓库的角色。它是一个存储代码的中央化位置,用于集中管理和共享项目代码。开发者可以将本地仓库中的代码推送(push
)到代码托管中心中,也可以从代码托管中心拉取(pull
)最新的代码更新。
举个例子,张三先从代码托管中心拉取代码,编写新的代码后将代码提交到本地库再push
到远程仓库,然后李四加入团队,也从代码托管中心clone克隆整个项目代码,然后也添加新代码并push上去,重复这样操作就完成了多人协作开发。
代码托管中心提供了以下功能:
- 远程仓库管理:代码托管中心提供了远程仓库,用于存储和管理项目的代码。开发者可以将本地仓库中的代码推送到远程仓库中,或者从远程仓库中拉取最新的代码。
- 版本控制:代码托管中心可以管理多个版本的项目代码。每次推送到远程仓库的代码变动都会创建一个新的版本,这样就可以记录代码的修改历史,并可以回溯到特定的版本。
- 分支管理:代码托管中心支持多分支管理,开发者可以在远程仓库上创建、合并和删除分支。这样可以方便团队成员之间的协作开发和并行实验新功能。
常见的代码托管中心包括GitHub
、Gitee
和GitLab
等等。它们提供了网页界面和其他工具,使得代码协作和管理更加简单和便捷。通过代码托管中心,多个开发者可以共同协作,共享代码,并保持代码的安全备份。
托管中心种类
🪟4.2 托管中心种类
-
局域网环境下:可以搭建
GitLab
服务器作为代码的托管中心,GitLab
可以自己去搭建 -
外网环境下: 可以由
GitHub
或者Gitee作为
代码托管中心,GitHub
或者Gitee
是现成的托管中心,不用自己去搭建