什么是“版本控制”?为什么要关心它?
版本控制是一个记录一个或几个文档的系统,以便将来检查特定版本的修正案。在本书中显示的示例中,我们控制保存软件源代码的文件,但实际上,该版本是版本控制可以由任何类型的文件控制。
如果您是图形或网页设计器,则可能需要保存图片或页面布局文件的所有修订版(这可能是您渴望的功能)。使用版本控制系统(VCS)是一个明智的选择。您可以将文件返回到先前的状态,甚至可以将整个项目返回到过去的特定时间点状态。您可以比较文件的详细信息。怪异问题的原因,她报告了她何时报告某种功能缺陷等等。
提出栗子学生论文
使用控制系统的版本通常意味着即使您将整个项目中的文件弄乱,也会删除并删除它。这没关系。您仍然可以轻松返回原始外观。但是额外的工作量很小。
许多人习惯于通过复制整个项目目录来保留不同版本。也许会重命名并添加备份时间以显示区别。这样做的唯一好处很简单,但是犯错误特别容易。有时它会对工作目录感到困惑,而我不小心写了错误文件或介绍我想要的文档。
为了解决此问题,人们很久以前就已经开发了许多本地版本控制系统,其中大多数使用了一些简单的数据库来记录文件的先前更新。
接下来,人们遇到了另一个问题,如何使不同系统上的开发人员一起工作?结果,集中式版本控制系统(CVC)出现了。拥有一个单个集中式管理服务器,以保存所有文件的修订版。共同努力通过客户端连接到该服务器并取出最新的人。文件或提交更新。在年份中,这已成为版本控制系统的标准实践。
这种方法带来了许多好处:
缺点:
只要整个项目的历史记录存储在一个位置中,就有失去所有历史续签记录的风险。
因此发布了分布式版本控制系统(DVC)。在此类系统中,例如Git,Mercurial,Bazaar,Darcs等,客户不仅提取了最新版本的文件快照,还可以完成代码warehouse。方式,协作工作中使用的任何服务器都会失败,然后可以使用任何镜子恢复的本地仓库来恢复。由于每个克隆操作实际上是代码仓库的完整备份。
GIT和其他版本的控制系统(包括颠覆和近似工具)之间的主要差异是GIT处理数据。
控制系统的其他版本(包括颠覆和近似工具)将信息存储在文件更改列表中。系统(简历,颠覆,perforce,Bazaar等)将保存的信息视为一组基本文件,每个文件逐渐累积了时间。存储与初始版本之间的区别
git更像是小文件系统的一组快照。每当您提交更新,或将项目状态保存在git中,它主要是当时所有文件的快照,并保存此快照索引。该文件未经修改,GIT不再存储该文件,而仅保留指向先前存储的文件的一个链接。git将数据更像是快照。
GIT和其他版本的控制系统(包括颠覆和近似工具)之间的主要区别:
您的文件可能是其中之一:委托,修改(修改)和存储。
Git Warehouse,工作目录和临时区域。
GIT仓库目录是GIT使用项目的元数据和对象数据库的地方。这是GIT中最重要的部分。当克隆克隆在其他计算机中时,数据将在此处复制。
工作目录是项目的独立版本的内容。这些从Git Warehouse的压缩数据库中提取的文件放在磁盘上供您使用或修改。
临时存款区域是一个文件,该文件保存了下次将提交的文件列表信息,通常在Git Warehouse目录中。有时它也称为“索引”,但通常称为临时区域。
基本的git工作流量如下:
正如代码需要代码规格一样,代码管理还需要明确的流程和规格
GIT流动流程:
也就是说,我们经常使用的主分支。该分支机构最近发布了生产环境的代码。最近发布的发行版只能与其他分支合并。
该分支是我们的主要开发分支,包括所有要发布到下一个版本的代码。
该分支主要用于开发新功能。开发完成后,我们将合并回开发分支机构中的下一个版本
当您需要新版本时,我们将根据开发分支创建一个发行分支。完成发布后
当我们发现生产中的一个新错误时,我们需要创建一个hotfix并完成Hotfix,我们将其合并给主人和开发分支,因此Hotfix的更改将输入下一个版本
主分支上的所有初始分支都应为标签
功能分支名称功能/*
功能分支完成后,必须将其合并回开发分支。合并合并后,此功能分支将被删除,但我们也可以保留
释放分支名为名称/*
发布分支是根据开发分支创建的。发布分支完成后,我们可以在此发行分支上进行测试并修改错误。在同一时间,其他开发人员可以开发一个新功能(请记住:一旦发行分支命中
发布发行分支时,合并发布以掌握和开发。同时,在主分支上播放标签以记住发行版号,然后您可以删除Release Branch。
维护分支Hotfix分支名称hotfix/*
基于主人的主分支创建,需要将其合并回Master和MasterD Branch之后。同时
A。创建开发分支
b。开始新功能开发
C。完整的功能
d。启动重酶
e。完整发布
F。启动HotFix
G。完整的Hotfix