Git版本控制系统VCS

一、版本控制系统基本情况说明

  版本控制是一种记录一个或者若干个文件内容的变化,以便将来查阅特定版本修订情况的系统

1、作用

  记录文件的所有历史变化

  随时可回复到任何一个历史状态

  多人协作开发或者修改

  错误恢复

  多功能的并行开发(分支功能、特性-合并操作)

2、分类

  本地版本控制系统(local VCS)

  集中化的控制系统(Centralizes VCS)

  分布式的版本控制系统(Distributed VCS)

3、基本概念

  repository——存放所有文件及历史信息

  checkout ——取出或者切换到指定版本的文件

  version ——记录表示一个版本(编号或者其他代码),某个特定状态下的资源

  tag ——记录标识一个主要版本(1.0 2.0 3.0)

4.三种版本控制系统细讲

(1)本地版本控制系统(LVCS)——本地完整仓库(少用)

  RCS (Revision Control System)

  优点:简单、很多系统中都有配置

    适合管理文本文件

  缺点:不支持网络

    支持类型单一

    只适合管理少量文件、不支持基于项目的管理

(2)集中式版本控制系统(CVCS )——服务器完整的仓库

  CVS (Concurrent Version System)

  Subversion

  优点:适合多人团队协作开发

    代码集中话管理

  缺点:单点故障

    必须连网操作,无法单击本地工作

(3)分布式版本控制系统(CVCS)——本地和服务器都有完整的仓库

  Git

  Mercurial

  优点:适合多人团队协作开发

    代码集中化管理

    可以离线工作

    每个计算机都是一个完整仓库

二、Git——一个分布式的版本控制系统

1Git由来

  Git最初开发是为了取代BitKeeper,由linus
Torvalds开发,作为linux内核代码管理系统使用。

  Git
设计时考虑了很多方面,除了分布式版本控制系统的优点外,还考虑了一下的设计目标,这些目标都成为git的优点:

  速度、简单的设计、对非线性开发模式的强烈支持(分支功能,允许上千个并行开发的分支)、完全分布式、有能力管理类似linux内核一样的强大规模项目。

2、为什么取名git

  I'm
an egotistical bastard,and I name all my projects after
myself.First'Linux',now'Git'. ——Linus Torvalds

3git原理——快照,而非保存区别。

(1)快照,而非保存

  每一种版本控制系统都用一种办法追踪不同阶段的文件的变化。

  别的:补丁(保存区别)

  Git
:快照(链接)snapshot

(2)几乎所有的操作都是在本地执行

(3)通过校验和算法识别文件的变化

  Git
使用SHA-1算法对文件内容或者目录结构进行hash运算,用得出的校验值作为识别变化的指纹。

(4)多数操作据为添加数据

4Git
原理——文件状态及工作区域

  Git
respository——最终确定的文件保存到仓库,成为一个新的版本,并且对他人可见

   Staging
area(index)——暂存已经修改的文件

  Working
Directory——编辑、修改文件

三、Git安装

  sudo
apt-get updates

  sudo
apt-get install git

四、Git基础设置

1、设置用户名

  git
config –-global user.name “IterCast”

2、设置用户邮箱

  git
config –global user.email “demo@itercast.com”

  (用户名和邮箱是提交代码时的标识)

3、查看设置

  git
config –list

4、可以通过以下命令获取git帮助

  git
help

  可以通过以下的命令获取特定指令的帮助

  git
help 特定指令

五、Git操作

(一)初始化一个新的Git仓库

1、创建一个文件夹(或者使用已有的文件夹)

   mkdir
git-Demo

2、在文件夹内初始化Git
,创建Git仓库

  cd
git-Demo

  git
init (实际上就是在这个文件夹下面创建一个隐藏的文件夹.git,所有的git文件都保存在此)

(二)Git
仓库中的文件添加及更新

  Git
工作区域: Working
Directory——>Staging area(index)------>Git repository

(1)新添加的文件

  hellogit.rb、README

(2)添加到Staging
area

  git
add hellogit.rb

  git
add README

(3)确定后,添加到Git
repository

  git
commit -m “init pro说明信息”

注释:

  (1)git
status 查看当前的仓库状态;git
log查看仓库日志。

   (2)git
commit -a -m “modify hellogit” 直接一起提交暂存文件。(不会自动提交未追踪的文件)

    git
commit -a -m “modify README”  

     (git
status)

(三)删除文件

1、删除文件(从系统中删除文件)

   rm
README

2、从Git中删除文件(让Git不去追踪这个文件)

  git
rm README

3、提交操作

  git
commit -m “delete README”

注:只是在当前版本中删除,而历史版本中还是存在的

(四)重命名文件

   hellogit.rb---------->helloworld.rb

  1、git
mv hellogit.rb helloworld.rb

   2、git
commit -m “rename hello.rb to helloworld.rb”

  注:重命名文件相当于执行下面三条命令

    1、mv
hellogit.rb helloworld.rb

    2、git
rm hellogit.rb

    3、git
add helloworld.rb

六、Git
远程仓库简介

  Working
Directory---->Staging area------->Git
repository-----.git仓库文件---->Git仓库文件

1、Git远程仓库——访问协议

  Local、SSH
、Git
、HTTP/HTTPS

2、常用Git
仓库实现

(1)使用现有的Git网络仓库服务

   github、bitbucket

(2)搭建自己的Git仓库服务器件

声明:本文是在观看苏勇老师在51CTO学院上面的Web开发-苏勇老师Git 版本控制系统精讲视频课程整理而来,大家可以进行视频观看。在此谢过苏勇老师!!

Git版本控制系统VCS的更多相关文章

  1. Google Code项目代码托管网站上Git版本控制系统使用简明教程

    作为一个著名的在线项目代码托管网站,Google Code目前主要支持三种版本控制系统,分别为Git, Mercurial和 Subversion.Subversion即SVN相信大家都已经熟知了,这 ...

  2. git版本控制系统重新认识

    git 版本控制系统 目标:完全搞懂git分布式版本控制系统 搭建git版本控制系统 cvs集中化版本控制系统--集中式管理的服务器 git分布式版本控制系统--会将原始代码仓库镜像下来 新项目使用g ...

  3. git版本控制系统小白教程(上)

    前言:本文主要介绍git版本控制系统的一些基础使用,适合小白入门,因为内容较多,会分为两部分进行分享. Git介绍 ​ Git是目前世界上最先进的分布式版本控制系统.并且它是一个开源的分布式版本控制系 ...

  4. git版本控制系统小白教程(下)

    前言:本文主要介绍git版本控制系统的一些基础使用,适合小白入门,因为内容较多,会分为两部分进行分享,查看上部请点传送门. 删除文件 ​ git删除文件一般有三种情况,第一种是在工作区修改了文件,但是 ...

  5. 版本控制系统(VCS)简介

    简介 版本控制系统(VCS)是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统.使用版本控制系统通常还意味着,就算你乱来一气把整个项目中的文件改的改删的删,你也照样可以轻松恢复到原先 ...

  6. 初识git版本控制系统

    当下git分布式版本控制系统越来越火,掌握git也是必须的一个技能.因此,对git做了如下学习. Git初级指南 1. 先安装git.(ps:在select cmponents处要勾选Git Bash ...

  7. 如何选择版本控制系统 ---为什么选择Git版本控制系统

    版本控制系统 "代码"作为软件研发的核心产物,在整个开发周期都在递增,不断合入新需求以及解决bug的新patch,这就需要有一款系统,能够存储.追踪文件的修改历史,记录多个版本的开 ...

  8. Git版本控制系统之基本使用

    最早是通过接触著名的开源社区Github了解到Git的,但一直没有系统学习过.这次下定决心从头到尾系统的学一学,也将学习过程记录于此,供大家批驳.本篇文章先从以下几个方面简单了解一下Git: Git的 ...

  9. git版本控制系统更新

    版本控制系统: 一.概念: 版本控制系统(Version Control System):是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 二.版本控制系统分类 1.本地版本控制 ...

随机推荐

  1. 嵌入式开发之davinci--- 8148/8168/8127 中的音频alsa 采集

    1.snd_pcm_open,打开句柄. 2.配置参数,可能用到的接口:snd_pcm_hw_params_alloca.snd_pcm_hw_params_any.snd_pcm_hw_params ...

  2. ERROR 1130: Host '' is not allowed to connect to thisMySQL server

    今天1网友求助,说自己PHPmyadmin能够正常连接数据库,使用sqlyog报错: ERROR 1130: Host '172.27.214.1' is not allowed to connect ...

  3. 45、Android事件总线分发库的使用

    事件总线分发库EventBus和Otto的简介及对比 什么是事件总线管理: a.将事件放到队列里,用于管理和分发b.保证应用的各个部分之间高效的通信及数据.事件分发c.模块间解耦 Event Bus是 ...

  4. [Spring Data Repositories]学习笔记--定义自己的repository

    有时,我们会需要用到自己定义的一些查询方法,可以按照下面几步进行. 1. 定义一个包含该方法的接口 Interface UserRepositoryCustom { public void someC ...

  5. poj2528

    Mayor's posters Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 56864   Accepted: 16445 ...

  6. 《从零开始学Swift》学习笔记(Day 53)——do-try-catch错误处理模式

    原创文章,欢迎转载.转载请注明:关东升的博客 Swift 1.x的错误处理模式存在很多弊端,例如:为了在编程时候省事,给error参数传递一个nil,或者方法调用完成后不去判断error是否为nil, ...

  7. 《从零开始学Swift》学习笔记(Day 24)——枚举

    原创文章,欢迎转载.转载请注明:关东升的博客  Swift中的枚举可以定义一组常量.提高程序的可读性:还具有面向对象特性. 使用enum关键词声明枚举类型,具体定义放在一对大括号内,枚举的语法格式如下 ...

  8. 1282 时钟(最小表示法+hash)

    1282 时钟 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 有N个时钟,每个时钟有M个指针,P个刻度.时钟是圆形的,P个刻度均分整 ...

  9. mysql_数据库_操作

    1.查看数据库 show databases; # 默认数据库: test - 用于用户测试数据 information_schema - MySQL本身架构相关数据 2.创建数据库 #utf- 编码 ...

  10. PHP heredoc 用法2

    参考网上的一个heredoc php模板实现的简单代码:index.php文件: <?php function template($template,$EXT ='htm') { $path = ...