zoukankan      html  css  js  c++  java
  • VersionControl:git

    关于VersionControl

           VersionControl即版本控制,版本控制是一种记录文件或文件集随时间变化的系统,以便以后可以查阅调用特定版本,版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。如果你是图形或Web设计人员并希望保留图像或布局的每个版本(您肯定希望这样),则使用版本控制系统(VCS)是一件非常明智的事情。它允许你将所选文件还原回以前的状态,将整个项目还原回以前的状态,比较一段时间内的更改,查看最后修改了哪些可能导致问题的人,谁引入了问题以及何时等等。使用VCS通常也意味着如果你搞砸了或丢失文件,你可以轻松恢复。此外,你只需很少的开销即可获得这些

           版本控制系统有本地版本控制系统、集成版本控制系统、分布式版本控制系统本地版本控制系统:很多人选择的版本控制方法是将文件复制到另一个目录(如果它们很聪明,可能是带时间戳的目录),这种方法很常见,因为它非常简单,但也非常容易出错,很容易忘记你所在的目录并意外写入错误的文件或复制你不想要的文件,为了解决这个问题,程序员很久以前就开发了一个本地VCS,它有一个简单的数据库,可以对文件的所有更改进行修订控制。集成版本控制系统:人们遇到的下一个主要问题是他们需要与其他系统上的开发人员协作,为了解决这个问题,开发了集中版本控制系统(CVCS),这些系统(例如CVS,Subversion和Perforce)具有包含所有版本化文件的单个服务器,以及从该中心位置检出文件的许多客户端,多年来,这一直是版本控制的标准,此设置提供了许多优势,尤其是在本地VCS上。例如,每个人都知道项目中的其他人正在做什么。管理员可以对谁可以做什么进行细粒度的控制,管理CVCS比处理每个客户端上的本地数据库要容易得多,但是,这种设置也有一些严重的缺点,最明显的是集中式服务器所代表的单点故障,如果该服务器停机一小时,那么在那个小时内,任何人都无法进行协作或将版本化更改保存到他们正在处理的任何内容中,如果中央数据库所在的硬盘损坏,并且没有保留适当的备份,那么您绝对会丢失所有内容 ----项目的整个历史记录,除了人们碰巧在本地计算机上发生的任何单个快照,本地VCS系统也遇到同样的问题 ------只要您将项目的整个历史记录放在一个地方,就有可能失去一切。分布式版本控制系统:当遇到以上问题的时候就需要分布式版本控制系统(DVCS),而git就是一种分布式版本控制系统,其他的DVCS还有Mercurial,Bazaar或Darcs,DVCS中客户端不只是查看文件的最新快照;,相反,它们完全镜像了存储库,包括其完整的历史记录,因此,如果任何服务器死亡,并且这些系统通过该服务器进行协作,则可以将任何客户端存​​储库复制回服务器以还原它,每个克隆都是所有数据的完整备份,此外,许多这些系统可以很好地处理他们可以使用的多个远程存储库,因此您可以在同一个项目中以不同的方式与不同的人群进行协作,这允许您设置在集中式系统中不可能的多种类型的工作流,例如分层模型。

    git作用

           没错,向前面提到的Git就是一个分布式版本控制软件。在进行软件开发时,一个团队的人靠使用Git,就能轻松管理好项目版本,做好项目的追踪和辅助进度控制。我们举例再来理解一下集中式版本控制和分布式版本控制,所谓“集中式版本控制”,就好比这一个团队中,版本库都集中在一台服务器上,每个开发者都要从服务器上获取最新的版本库后才能进行开发,开发完了再把新的版本提交回去,而“分布式版本控制”,则是这个团队中每个人的电脑上都会有一份完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。

    在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

    总之,Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。

  • 相关阅读:
    新代(Syntec)机床的IP设置
    使用任务计划程序实现用户未登录情况下的程序开机自启动
    sql server 数据库访问端口配置
    Http请求
    EF
    SQL Server常用处理
    利用ZXing生成条码二维码例子
    SQL JOIN常见情况
    C#ORM框架收集
    sql server连接oracle并实现增删改查
  • 原文地址:https://www.cnblogs.com/vision-xixi/p/10473848.html
Copyright © 2011-2022 走看看