0


Git到底是什么?

📢📢📢📣📣📣

哈喽!大家好,我是【一心同学】,一位上进心十足的【Java领域博主】!😜😜😜

✨【一心同学】的写作风格:喜欢用【通俗易懂】的文笔去讲解每一个知识点,而不喜欢用【高大上】的官方陈述。

✨【一心同学】博客的领域是【面向后端技术】的学习,未来会持续更新更多的【后端技术】以及【学习心得】。

✨如果有对【后端技术】感兴趣的【小可爱】,欢迎关注一心同学】💞💞💞

❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️


一、什么是Git?

一心同学】用一句话概括

Git是目前世界上最先进的分布式版本控制系统,没有之一!

二、什么是版本控制系统?

🌴问题引入

我们来讲一个例子,在公司里,上司要让小明去写一份报告,小明是一个非常认真工作的员工,于是小明回到家后就开始写报告,写好了一份报告,却发现好像有些地方不太好,但对于原报告又不想删掉,说不定哪一天可以用得着呢,于是,小明就在第一份报告的基础上继续更改,第二个版本的报告完成了,但细心的小明发现不行,还得改,于是,就又写了版本3版本4.....

于是就造成了以下这个局面:

🚀【痛苦面具1】:当小明想要找回之前修改的某个报告时,却【找不到了】,是不是极其【痛苦】。

🚀【痛苦面具2】:有些部分需要小明的同事帮助填写,于是小明把文件通过【微信】发送给他,然后,小明继续修改Word文件。一天后,同事再把Word文件传给小明,此时,小明需再想想,发给同事之后到收到他的文件期间,小明作了【哪些改动】,得把小明的改动和同事的部分【合并】,真【困难】。

🌴救星登场

如果有一个软件不但能自动帮我记录每次文件的改动,还可以让同事协作编辑,这样就不用自己管理一堆类似的文件了,也不需要把文件传来传去。如果想查看某次改动,只需要在软件里瞄一眼就可以,岂不是很方便

这个软件用起来就应该像这个样子,能记录每次文件的改动

而这个就是我们的版本控制系统

二、集中式与分布式版本控制区别

🌵集中式版本控制(CVCS)

🚀特点:

版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。

🚀优点:

1、每个人都可以在一定程度上看到项目中的其他人正在做些什么

2、管理员可以轻松掌控每个开发者的权限,并且管理一个 CVCS 要远比在各个客户端上维护本地数据库来得轻松容易

🚀缺点:

1、必须联网才能工作,这也是其最大的毛病。

2、中央服务器的单点故障,如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。

3、安全问题欠佳,如果中心数据库所在的磁盘发生损坏,又没有做恰当备份,那么我们将丢失所有数据。

🌵分布式版本控制系统(DVCS)

🚀特点:

与集中式版本控制系统相比,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,在工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。

🚀那么我们如何多人协作呢?

当你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

🚀实际开发中的使用

实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机

因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

🔥集中式与分布式对比

1、集中式版本管理系统需要中央服务器分布式管理系统不需要中央服务器

2、集中式版本管理需要联网分布式管理不需要联网

3、分布式版本控制系统的安全性要比集中式版本管理高很多。

因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。

三、Git工作流程

🌵工作流程

Workspace:工作区,平时存放项目代码的地方。
Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息。
Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本。
Remote:远程仓库 ,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换。

🚀Git的工作流程:

1、在工作目录(Workspace)中添加、修改文件;

2、将需要进行版本管理的文件放入暂存区域(Index / Stage)

3、将暂存区域的文件提交到Git仓库

🌵目录结构

Directory:使用Git管理的一个目录,也就是一个仓库,包含我们的工作空间和Git的管理空间。

WorkSpace:需要通过Git进行版本控制的目录和文件,这些目录和文件组成了工作空间。

.git:存放Git管理信息的目录,初始化仓库的时候自动创建。

Index/Stage:暂存区,或者叫待提交更新区,在提交进入repo之前,我们可以把所有的更新放在暂存区。

Local Repo:本地仓库,一个存放在本地的版本库;HEAD会只是当前的开发分支(branch)。

Stash:隐藏,是一个工作状态保存栈,用于保存/恢复WorkSpace中的临时状态。


小结

以上就是【一心同学】对【Git的介绍】,现在对Git的理解是不是就突然【熟悉】起来了,而【Git】的强大之处还不仅仅文章指出来的这些,在接下来的博客里,请跟着【一心同学】的步伐去领略【Git】的强大之处

如果这篇【文章】有帮助到你,希望可以给【一心同学】点个👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点,如果有对【后端技术】感兴趣的小可爱,也欢迎关注❤️❤️❤️ 【一心同学】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!

标签: git 分布式 集中式

本文转载自: https://blog.csdn.net/Huang_ZX_259/article/details/122604274
版权归原作者 一心同学 所有, 如有侵权,请联系我们删除。

“Git到底是什么?”的评论:

还没有评论