前言
Git是我们写代码时使用的版本控制工具。同时他也是截止目前世界上最先进的分布式版本控制系统。从毕业以来进入到实践工作当中,我发现在实际开发中的项目协作上,或者说在项目版本管理工具Git的使用上,有很多可以去优化的地方。为此,自己花了一段时间去学习研究Git的使用,以及如何使用Git更好的来管理多人协作项目。当然,经过了一个阶段的系统学习,想写一些关于这段时间学习的感受,也方便以后回过头来重新复习一遍。
本文章主要讨论几个问题:
- 什么是Git? Git是用来做什么的呢?
- 什么是版本控制,他的作用是什么?
- 集中式版本控制系统与分布式版本控制系统的工作方式,区别?
- Git的工作方式以及项目Git文件负责的职能
1.什么是Git?它是用来做什么的?
Git是截至目前(2020年)世界上最先进的分布式版本控制工具。
它是用来对项目进行版本控制的。
2.什么是版本控制,他的作用是什么?
我们先举个例子:如果你在用电脑写一份文档时,想删除掉一段文字,但是很不巧,这段文字可能在未来的某个时刻会被用到,这个时候一般你需要先将这个文档另存为“文档A”,然后再这个基础上再去修改保存“文档B”。 现在文档B在某个层面上需要进行某个结构的调整,但是你也不清楚这样子的调整能不能通过领导的审查的时候,便会在这个基础上保存一个新的“文档C”,在我们做软件需求上都认同这样一句话“软件需求是在不断变更的”。那一段时间下来,你会发现多了“文档DEFGHIJK…”,既浪费了电脑内存又不方便管理。
还有另一种情况,收集一个表格,同时需要多人填写,那统计者便会收到多个表格,并且在进行汇总合并,费时费力…
3. 集中式版本控制系统与分布式版本控制系统的工作方式,区别?
- 集中式版本控制系统 – cvs,svn
简单来说,他的版本库存放于中央服务器上,而我们在工作时,首先从中央服务器上获取到项目的最新版本,然后在开始进行我们的修改,完成工作后,再把自己的工作内容推送到中央服务器上。
但是这样的方式缺点也很明显:首先是必须联网,并且文件是按照原始数据进行储存,如果是局域网就还好,带宽大、网速快,但是如果是外网访问的云,如果需要传输大文件或者文档,这个传输时间也是蛮扎心的了,另外A终端创建新分支在B终端上也会拥有一样的分支。
- 分布式版本控制系统 – git
git中,每个开发者都有一个属于自己的本地仓库,在工作时,首先在自己的本地仓库进行修改与提交,最后将这些修改的元数据,即修改部分信息,而不是像svn的原始数据推送到远程服务器上。git的每个提交保存的是差异记录,所有提交合在一起得到完整记录,有点像是数学并集问题。
在git的使用当中,远程服务器的职能更偏向于用来交换大家的修改与数据存储,即使没有网络,也可以使用本地仓库进行版本管理,只是不方便多方交换各自的数据而已。另外git创建的分支不会影响其他人的使用。
4. Git目录?
目录名字 | 职能 |
---|---|
config | 储存项目配置信息 |
objects文件夹 | 储存git对象 |
HEAD文件 | 记录当前头指针 |
index文件 | 储存暂存区的信息 |
refs | 储存分支信息,包含当前分支,远程分支名,以及tags标签 |
来源:CSDN
作者:码农井都弟
链接:https://blog.csdn.net/qq_30478639/article/details/104582908