Git 基础知识 -- 版本控制概念

版本控制系统如CVS、SVN和Git在软件开发中扮演着重要角色,确保代码同步、历史追踪和团队协作。Git作为分布式版本控制系统,允许本地提交和完整的版本历史,增强了代码的安全性和可靠性。集中式系统依赖中央服务器,而分布式系统则在每个开发者机器上保存完整版本库,提供离线工作和数据冗余。
摘要由CSDN通过智能技术生成

版本控制

​ 一个完整大型项目的构建与开发,都是需要一个团队合作完成的,每个人分工不同。同时,每个人负责的岗位也会被其他人替代,在项目开发人员更新迭代的同时,为了确保整个项目中以往开发人员遗留的代码所使用的第三方库,框架与刚上岗的开发人员所写的代码用到的第三方库、框架能够在整个团队中得到同步,避免新代码所使用的版本不同而导致整个项目存在代码版本不同的隐患差异,便出现了对整个项目的软件进行统一版本控制的设计思想。

版本控制指的是在一个项目开发中,用于从项目构建到项目开发为止的整个项目维护过程中的一种标准维护作法。

它是一种软件工程设计技巧,能够借此在软件开发过程中,确保由不同人所编辑的同一代码文件都得到同步。

项目的版本控制其实是使用一种工具,来记录与追踪项目整个开发过程中所使用到的软件,库等的版本信息,并进行统一管理。无论是个人的文件或代码管理,还是企业中的团队协作开发,版本控制工具都是必不可少的利器。

发展历程

在早期,最原始的版本控制系统是纯手工控制,修改文件或者保存文件副本,是使用 U盘或其他方式 来保存开发人员所写的代码文件,并导出拷贝到其他开发人员的计算机中。

比如修改一个文件从 version1 到 version2 ,如果只改动一次还好,我们知道修改了什么,但是当 version2 修改到 version3 甚至 version4 的时候,这种方式安全隐患很大,且不易于项目维护。

​ 由于版本改动较大,我们想知道相对于上一个版本到底做了什么修改的话比较困难,回滚版本的时候也很容易出错,便出现了由软件工具系统来进行统一管理

现如今,通过在整个项目的中央服务器中使用第三方专门的软件工具来设立一个版本控制系统,能有效记录所有代码文件的版本,追踪代码文件的变化,同时很容易就回滚到之前某个版本的状态。

版本控制软件的发展

版本控制系统所使用到的软件工具也会其发展的历程:

最开始,使用的是 CVS (Concurrent Versions System) 软件工具。

CVS:

CVS 是最早的开源且免费的集中式版本控制系统。部分收费。

SVN:

不过由于CVS自身设计的问题,会造成提交文件不完整,版本库莫名其妙损坏的情况。

同样是开源而且免费的SVN修正了CVS的一-些稳定性问题

目前用得最多的集中式版本库控制系统。

GIT:

傻瓜内容跟踪器。

一款免费、开源的分布式版本控制系统,用于敏捷、高效地处理任何小、大型项目

历程如图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q1zZEdms-1657784817359)(git-media/版本控制系统的发展历史.webp)]

版本控制工具的主要作用 是:

  • 备份文件:在服务器中保存代码,方便随时恢复
  • 记录历史:追溯任意代码文件中的任意一行在什么时间被什么人修改过
  • 回到过去:让版本库中的任意一个代码文件恢复到之前的任意一个历史版本
  • 多端共享:多个终端共享同一份代码
  • 团队协作:方便团队协作开发,尽可能减少代码不一致的冲突情况
集中式

版本库是集中放置在中央服务器的,开发过程中,需要先从中央服务器取得最新的版本,修改代码后再将代码文件推送给中央服务器。例如 : SVN

集中式特点在于必须要有中央服务器,且使用过程中必须联网才能完成版本控制操作。一旦中央服务器挂掉或者数据丢失,则会影响整个开发工作。

所有的版本数据都存在服务器上,用户的本地只有自己以前所同步的版本,如果不连网的话,用户就看不到历史版本,也无法切换版本验证问题,或在不同分支工作。而且,所有数据都保存在单一的服务器上,有很大的风险这个服务器会损坏,这样就会丢失所有的数据,当然可以定期备份。代表产品:SVN、CVS、VSS。

图片

过程如图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3Y3ItD8Q-1657784817361)(git-media/集中式.webp)]

分布式

分布式版本控制抛开了中央服务器的概念,每台主机都是一个完整的版本库,使用过程可以不联网。

使用过程中,多人协作可以通过相互推送自己修改的代码给对方【通常不这么干】。因为双方不一定在局域网内且未必能正常接收。为了方便操作,分布式版本控制系统通常也有一台充当“中央服务器” 的电脑,但这个服务器的作用仅仅是为了方便 “交换” 大家各自修改的代码文件。

所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时push到相应的服务器或其他用户那里。由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。

不会因为服务器损坏或者网络问题,造成不能工作的情况!

图片

过程如图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o2wbCJwT-1657784817362)(git-media/分布式.webp)]

主要区别

分布式相对于集中式的最大区别就在于:

  • 开发者可以提交到本地,每个开发者机器上都是一个完整的数据库。

SVN : 版本集中管理,所有的代码都在中央服务器上。

Git: 去中心化,每台服务器上都有一个完整的数据库。

区别如图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1810w2VI-1657784817362)(git-media/集中式 VS 分布式.webp)]

引用中提到了一个错误消息,即在解析包时发生错误,指出项目具有无效的依赖项,其中包括com.unity.xxx。错误消息还指出系统中未找到'git'可执行文件,请安装Git并重新启动Unity和Unity Hub。引用提到了解决这个问题的一种方法,即重新打开Unity和Unity Hub,如果仍然出现错误,则需要检查系统进程,确保完全关闭了Unity或Unity Hub。然而,引用并没有提到"unity no git"这个具体问题。 根据引用的信息,"unity no git"可能是指在使用Unity时缺少Git工具的问题。在Unity中,Git被用于源代码版本控制和协作开发。如果您在使用Unity时遇到了"unity no git"的错误消息,这可能意味着您的系统中没有安装Git,或者Unity无法找到Git的安装路径。 要解决这个问题,您可以按照错误消息中提到的建议,安装Git并重新启动Unity和Unity Hub。安装Git的具体步骤可能因操作系统而异,但您可以在Git的官方网站上找到相关的安装指南。 另外,您还可以尝试通过在系统进程中确保完全关闭Unity和Unity Hub来解决问题,如引用中所述。有时,如果某些进程仍在后台运行,它们可能会干扰Unity的正常操作。 综上所述,"unity no git"可能指的是在使用Unity时缺少Git工具的问题。您可以通过安装Git并重新启动Unity和Unity Hub来解决这个问题。如果问题仍然存在,可以尝试通过完全关闭Unity和Unity Hub,并确保没有任何后台进程在运行来解决问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Unity 报错No ‘git‘ executable was found. Please install Git on your system then restart](https://blog.csdn.net/Ling_SevoL_Y/article/details/124403207)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [PowerUI - HTML/CSS Unity](https://download.csdn.net/download/lambeyond/10914348)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值