精华内容
下载资源
问答
  • GIT(分布式版本控制系统)入门

    千次阅读 2017-12-20 22:10:22
    什么是GIT Git是目前世界上最先进的分布式版本控制系统(没有之一)。    那么问题来了,什么是分布式版本控制系统。    这里举个例子,你需要编写一个文档,这个文档呢财务部需要,产品部也需要。那么你要...

    什么是GIT

      Git是目前世界上最先进的分布式版本控制系统(没有之一)。
      
      那么问题来了,什么是分布式版本控制系统
      
      这里举个例子,你需要编写一个文档,这个文档呢财务部需要,产品部也需要。那么你要怎么写呢。无非这样做,先写一部分部门的材料,保存下来一个版本,交给他们,再添加一部分材料保存另一个版本交给另外的部门。如果涉及到多个部门,可能你需要写多个版本,都保存下来。然而,电脑桌面乱糟糟的,却又不敢删除任何一个版本。
      这并不是最糟糕的。最糟糕的是这么多部门又给你返回了他们各自部门的信息。你还要将它们统一到一个版本里。
      这时你会不会希望有一个管理系统不但能自动帮我记录每次文件的改动,还可以让同事协作编辑,这样就不用自己管理一堆类似的文件了,也不需要把文件传来传去。如果想查看某次改动,只需要在软件里瞄一眼就可以,岂不是很方便?
      这里写图片描述
      
      就像这样一样。
      这就是分布式版本控制系统的功能。

    分布式版本控制系统有什么优点

      说到它的优点不得不提到的是另外一种控制系统——集中式版本控制系统。
      CVS和SVN都是集中式的版本控制系统,GIT是分布式。那么什么是集中式,什么是分布式呢?
      集中式,顾名思义就是将资源集中起来。每次修改完文件上传到中央服务器。当需要修改时,再从中央服务器下载下来。这也暴露出它的一个弊端,必须需要网络才能从中央服务器下载下来。
      分布式,去中心化,GIT在我们每个人的电脑上都有一个独立完整的库,我们平时上传代码的中央服务器和我们电脑上的库的内容基本上完全一样。去中心化 意味着没有权威,没有主力,人人平等。在github 上有个fork功能。你可以fork任何人的项目,按照自己喜好修改项目。或是将自己修改的内容发给原作者,将你的功能更新到他的项目里面去。这就是分布式。

    安装

    官方下载:https://git-scm.com/downloads

    使用

      在Git中,我们将需要进行版本控制的文件目录叫做一个仓库(repository),每个仓库可以简单理解成一个目录,这个目录里面的所有文件都通过Git来实现版本管理,Git都能跟踪并记录在该目录中发生的所有更新。
      在目标文件下,打开git。通过git init 命令把这个目录变成Git可以管理的仓库:
    这时文件里会生成一个.git 的目录。这个目录是隐藏的。用ls -ah 命令就可以看见。
      这里写图片描述

      Git是一个快照每次提交后系统都会记录一下这次操作的相关信息
    这里写图片描述

      每次更新版本每个版本都会对应一个版本号。

    git命令

      git init: 创建一个本地仓库

      git add read.txt: 把本地文件(工作区)添加到缓存区

      git add. : 把本地所以文件全部添加到缓存区

      git commit -m 'describe message' :真正把缓存区的所有文件都添加到仓库上

      git status: 查看git仓库当前的状态

      git diff read.txt: 查看文件具体修改了哪里

      git log:查看最近到最远提交到仓库的文件信息(一串数字为特有的时间序列id 可以根据它进行版本前后回滚)

      git reset --hard HEAD^: 回退到上一次 commit的时候

      git reset --hard bdeacd: 版本前进 只能根据 id进行前进(id只写出前六位就好了)

      git reflog:查看每次操作仓库内的信息(commit) 这样的话当黑窗口没了的时候,也可以查询具体操作信息,进行版本回退或者前进!

      git checkout -- read.txt: 工作区恢复到最近一次的commit或者add

      git rm read.txt: 删除某一个文件
     
      git branch dev: 创建dev分支

      git checkout dev: 切换到dev分支上开发

      git branch:查看所有分支

      git branh -d dev:删除分支 (-D 强制删除)

      git merge dev: 合并分支
      
      git stash:保存工作现场;

      git pop:恢复工作现场;
      
      如果在开发的过程中发现主分支master上右bug但正在开发的dev分支没开发完怎们办,切记一点不要在master分支上直接开发,保存dev工作现场回到master上创建解决bug的分支如issue分支解决完回到master分支把issue分支合并再回到dev恢复现场

    展开全文
  • 版本控制系统概述

    千次阅读 2016-10-29 12:53:38
    版本控制系统VCS(version control system),是一种记录若干文件变化,以便将来查阅特定版本修改记录的系统。对于编程开发人员来说,我们常使用版本控制系统来对程序源代码进行版本管理。但实际上,我们可以对任何...

    最近再次认真学习下 Git,参照《Pro Git》中文版和网易云课堂的 Git 教程,写下学习笔记,也当是做个记录,以便日后可以参阅。

    版本控制系统 VCS(version control system),是一种记录若干文件变化,以便将来查阅特定版本修改记录的系统。对于编程开发人员来说,我们常使用版本控制系统来对程序源代码进行版本管理。但实际上,我们可以对任何类型的文件进行版本控制。

    根据版本控制系统的实现方式,我们可以对版本控制系统划分为以下几种类型:

    • 本地版本控制系统
    • 集中式版本控制系统
    • 分布式版本控制系统

    本地版本控制系统

    在没有使用版本控制系统之前,许多人习惯用文件名标识的方式来对不同版本的文件进行管理。例如,对于如下文件的版本管理:

    foo.txt -> foo-修订版.txt -> foo-最终版.txt -> foo-最终版-1.txt -> foo-绝对不改版.txt -> …

    这么做的好处是简单,不过却容易混淆不同文件之间的区别,最终只能通过手工对比文件的差别来辨别不同的文件。
    为了解决这个问题,人们开发了本地版本控制系统,大多都是采用某种简单的本地数据库来记录文件的历次更新差异。例如图 1。
    一个流行的本地版本控制系统叫做 RCS

    这里写图片描述
    图 1:本地版本控制系统

    集中式版本控制系统

    本地版本控制系统的一个问题是,多个人如何进行协同工作?因为所有文件提交的记录都在提交者本地的计算机,他人无法获取文件最新状态。于是,集中式的版本控制系统出现了。
    这类版本控制系统,都有一个单一的集中管理的版本控制管理服务器,保存所有文件的修改版本,而协同工作的人们都通过客户端连接到这台服务器,取出最新的文件或者提交更新后的文件。

    这里写图片描述
    图2:集中式版本控制系统

    集中式的版本控制系统,可以允许多个人协同工作,每个人都可以看到其他人的修改记录。但是集中式版本控制系统最大的一个问题是版本服务器的单点故障问题。如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也无法从服务器获取最新的文件。最坏的情况是,如果服务器的硬盘发生故障,并且没有做过备份或者备份不及时,还会有丢失数据的风险。

    分布式版本控制系统

    分布式版本控制系统的特点是客户端并不只提取最新版本的文件快照,而是把原始的代码仓库镜像完整地提取下来。这样一来,当版本控制服务器发生故障,事后可以用本地计算机的任何一个代码仓库镜像来恢复。因为每一次的撮操作,实际上都是对代码仓库的完整备份,见图 3。

    这里写图片描述
    图 3:分布式版本控制系统

    另外,由于大部提交的操作都是在本地进行而不需要经过服务器,因为提交的速度也更加快。
    现在非常流行的 Git,就是一种分布式版本控制系统。

    参考资料

    1. Git Pro, https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control
    2. Java Web开发第五章 Git, 郑海波, 网易云课堂
    展开全文
  • 先说集中式版本控制系统。简单的说就是,版本库是集中的存放于中央服务器的。干活的时候,先要去中央服务器里领取最新的版本,然后在开始干活。干完活在将自己的版本上传到中央服务器。 就好比要改一本书,先要从...

    集中式:

    先说集中式版本控制系统。简单的说就是,版本库是集中的存放于中央服务器的。干活的时候,先要去中央服务器里领取最新的版本,然后在开始干活。干完活在将自己的版本上传到中央服务器。

    就好比要改一本书,先要从图书馆里将书籍借阅出来,然后改完了之后,在将图书归还给图书馆。然后别人看到的就是最新的版本了。
    在这里插入图片描述
    缺点:

    缺点就是,一但没有网或者网络不好的话,自己写的东西就很难得传上去。别人也不能及时的看到。简单的说就是没有网就不能使用。


    分布式:

    分布式版本控制系统。分布式版本系统没有绝对的所谓中央服务器,每个人的电脑上都有一个版本库,使用的时候就不需要进行联网了。直接自己进行修改就行。既然每个人的电脑上都有一个版本库,那么多个人如何进行写作呢,只需要把你修改的和同事修改的进行交换就行。

    比如说你修改了A文件,你的一个同事也修改了A文件。这个时候只要把自己修改的部分推给对方,对方就能够看到你的修改。

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

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

    集中式和分布式最根本的区别就是:

    分布式每个人的电脑上都可以直接拷贝完整的代码版本。而集中式只能拷贝自己需要的。

    分布式的服务器挂掉之后,不会影响工作。而集中式的服务器挂掉之后,根本就没法进行工作。


    当然,Git的优势不单是不必联网这么简单,后面我们还会看到Git极其强大的分支管理,把SVN等远远抛在了后面。

    CVS作为最早的开源而且免费的集中式版本控制系统,直到现在还有不少人在用。由于CVS自身设计的问题,会造成提交文件不完整,版本库莫名其妙损坏的情况。同样是开源而且免费的SVN修正了CVS的一些稳定性问题,是目前用得最多的集中式版本库控制系统。

    除了免费的外,还有收费的集中式版本控制系统,比如IBM的ClearCase(以前是Rational公司的,被IBM收购了),特点是安装比Windows还大,运行比蜗牛还慢,能用ClearCase的一般是世界500强,他们有个共同的特点是财大气粗,或者人傻钱多。

    微软自己也有一个集中式版本控制系统叫VSS,集成在Visual Studio中。由于其反人类的设计,连微软自己都不好意思用了。

    分布式版本控制系统除了Git以及促使Git诞生的BitKeeper外,还有类似Git的Mercurial和Bazaar等。这些分布式版本控制系统各有特点,但最快、最简单也最流行的依然是Git!


    展开全文
  • VSS VSS 的全称为 Visual Source Safe 。作为 Microsoft Visual Studio 的一名成员,它主要任务就是负责项目文件的管理,几乎可以适用...VSS作为一款历史悠久的版本管理工具,在早期扛起了版本管理系统方面的大气

    VSS

    VSS 的全称为 Visual Source Safe 。作为 Microsoft Visual Studio 的一名成员,它主要任务就是负责项目文件的管理,几乎可以适用任何软件项目。管理软件开发中各个不同版本的源代码和文档,占用空间小并且方便各个版本代码和文档的获取,对开发小组中对源代码的访问进行有效的协调

    VSS作为一款历史悠久的版本管理工具,在早期扛起了版本管理系统方面的大气,能帮助解决一部分版本控制方面的问题,也在一定程度上帮助解决代码共享方面的难题。但是依旧存在一些不足,比如:

    1.文件大多会以独占的形势进行锁定。如果一个人在修改的时候其他人没有办法进行修改。

    2.VSS只支持Windows版本,且只兼容微软的开发工具。

    3.文件存储,服务器必须共享文件夹,对文件的安全性没有足够保障。

    SVN

    SVN

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。

    这是百度百科中给出的SVN的解释。SVN是一个开源的版本控制系统。和VSS相比,除开最基本的代码和文件管理功能外,主要的革新是提供了分支的功能,从而解决了VSS文件独占的问题。大幅提升了开发人员的工作效率,谁写完代码,随时可以提交到自己的分支上,最后对所有分支进行合并,解决冲突即可。相比VSS而言,在工作模式上有了翻天覆地的改变。

    而SVN作为集中式的版本管理系统,依然有他的优缺点:

    优点

    1.管理方便,逻辑明确,操作简单,上手快。

    2.易于管理,集中式服务器更能保证安全性。

    3.代码一致性非常高。

    4.有良好的目录级权限控制系统。

    ·劣势

    1.对服务器性能要求高,数据库容量经常暴增,体量大。

    2.必须联网。如果不能连接到服务器上,基本上不可以工作,如果服务器不能连接上,就不能提交,还原,对比等等。

    3.不适合开源开发。

    4.分支的管控方式不灵活

    Git

    请点击此处输入图片描Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。作为一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。

    分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。

    Git的优缺点如下:

    1.适合分布式开发,每一个个体都可以作为服务器。每一次Clone就是从服务器上pull到了所有的内容,包括版本信息。

    2.公共服务器压力和数据量都不会太大。

    3.速度快、灵活,分支之间可以任意切换。

    4.任意两个开发者之间可以很容易的解决冲突,并且单机上就可以进行分支合并。

    5.离线工作,不影响本地代码编写,等有网络连接以后可以再上传代码,并且在本地可以根据不同的需要,本地新建自己的分支。

    展开全文
  • 版本控制和版本控制系统的区别

    千次阅读 2016-08-08 20:10:57
    版本控制和版本控制系统的区别  转载必须声明转载地址http://write.blog.csdn.net/postedit 一、何谓版本控制 它是一种软件工程籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新,它透过文档控制...
  • Git就是分布式版本控制系统,对应的是集中式的版本控制如SVN。简单的说,分布式的版本控制就是每个人都可以创建一个独立的代码仓库用于管理,各种版本控制的操作都可以在本地完成。每个人修改的代码都可以推送合并到...
  • 【VCS】-常见的版本控制系统(VCS)

    千次阅读 热门讨论 2017-01-08 22:57:46
    一、什么是版本控制系统?  版本控制是一种记录一个或者若干个文件内容的变化,以便将来查阅特定版本修订情况的系统 1、作用  记录文件的所有历史变化  随时可回复到任何一个历史状态  多人协作开发或者修改  ...
  • 1. 几个基本概念 SCM:软件配置管理,用来追踪和控制软件的变化的任务。 SCI:软件配置项,软件中发生变化的基本单元(例如:文件)。 Baseline:基线,软件持续变化过程中的“稳定时刻”(例如:对外发布的版本...
  • 什么是集中式版本控制系统与分布式版本控制系统? 集中式版本控制系统:版本库是集中放在中央服务器的,当我们实际工作的时候,用的都是自己的电脑,所以首先要连接中央服务器,从那里得到最新的版本,然后编写或者...
  • 在一篇介绍Git的文章中,作者说版本控制系统是为懒人准备的,它让懒人们比那些善于备份文档的勤劳人拥有更干净的文件系统以及更多的可以活着的时间。对此我深表赞同。同时在现在快节奏的社会中,
  • 前言:本篇文章对于软件管理系统与版本控制系统将作一定介绍,然后再介绍他们之间需要做的集成。   1. 先来谈谈版本控制系统吧   Version Control System,简称VCS,属于软件配置管理(SCM)的一个部分。这个...
  • RCS版本控制系统简介

    千次阅读 2009-10-08 19:50:00
    版本控制是指跟踪和管理源代码文件变化的自动过程。RCS(Revision Control System),是最常用的版本控制解决方案,之后有两个工具可以替代RCS,一个是SCCS(Source Code Control System),另外一个是CVS(Concurrent ...
  • 什么是版本控制系统(VCS)?

    千次阅读 2014-02-09 16:04:41
    什么是版本控制系统(VCS)?  因为最近准备开始使用Git管理自己的项目,所以把在学习Git的过程中看到的帮助文档、网友的一些经验心得等内容整理下来,逐步形成自己的使用笔记,以便日后查阅。 版本控制系统是一种...
  • 版本控制系统Git安装使用方法

    千次阅读 2009-12-28 16:19:00
    无论怎么努力,当很多人对同一个项目进行设计时,没有一个合适的版本控制系统,事情会变得一团糟。当你与其他设计师们在创建一个网站并对其进行完善时,前端模板和后端功能的融合将会是一个令人提心吊胆的盲区。像...
  •  本地版本控制系统(RCS)  集中化的版本控制系统(CVCS)Svn  分布式版本控制系统(DVCS) Git ================================================================================================ ...
  • #为注释 *.txt # 忽略所有.txt文件 !lib.txt # 但lib.txt除外 ignore/* # 忽略所有名称为ignore目录下的所有文件 /temp/* # 忽略根目录下的temp目录下的所有文件
  • C++编程规范之3:使用版本控制系统

    千次阅读 2013-12-04 09:11:48
    请使用版本控制系统(VCS)。永远不要让文件长时间地登出。在新的单元测试通过之后,应该频繁登入。确保登入的代码不会影响构建成功。 讨论:  几乎所有大一点的项目都需要不只一个开发人员和一周以上的开发时间。...
  • 我们为什么要用版本控制

    千次阅读 2015-08-15 19:03:25
    不知道什么是版本库的,扇自己两个大嘴巴;知道但不用的,扇自己四个大嘴巴。... 上面那句话是我根据《版本控制之道:使用Git》上一句读者感言发展而来的。版本控制真的那么重要,真的那么好吗?  什么是

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,140,117
精华内容 456,046
关键字:

版本控制系统