VCS:Version Control System版本控制系统

1.记录文件的历史变化

2.随时可以恢复到任何历史状态

3.多人协作开发或修改

4.错误恢复

5.多功能并行开发    --SVN中的分支功能

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

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

version     --记录标识一个版本(编号或者其他版本)

tag             


--记录标识一个主要版本(1.0 2.0 3.0)里程碑版本


LVCS:本地版本控制系统

CVCS:集中化版本控制系统

DVCS:分布式版本控制系统




LVCS:使用本地硬盘即可存储,不支持网络功能。

    如:RCS软件

git版本控制器_第1张图片

CVCS:只支持网络,服务器上保存完整的文件

    如:CVS,SVN软件

    单点故障是指CVCS服务器出现故障,那么其它的操作都不能工作

git版本控制器_第2张图片

DVCS

    分布式:每个计算机都有一套完整的版本控制器。(分布式是不是类似镜像的意思???)

git版本控制器_第3张图片

分布式与集中式的概念




git版本控制系统

git的取名有点小意思    first“Linux”now“git”

git的原理:保存快照,而非区别

git的所有操作都是在本地执行的,多数操作均为添加操作



git的3种工作区域

    1.working directory

    2.staging area

    3.git repository

在working区编辑,修改文件..然后暂存到staging 区域..最终提交到 git repository形成一本新的版本,并且对他人可见

git版本控制器_第4张图片




安装git

    yum install -y git

查看git的版本信息    

    yum --version   

设置基本信息:

    主要是为了区分这个文件都是由谁谁谁提交的

    --global是表示对全局仓库生效的

git版本控制器_第5张图片


创建仓库

    git init 初始化之后会生成.git隐藏文件...然后所有的文件都保存在这个.git文件里面

git版本控制器_第6张图片

    

添加文件:将文件从 工作区域 先添加到了 暂存区域    

    git status     

    git add readme.txt    --单个文件

    git add *             --添加所有文件

*********************************

放入下面:

删除

git版本控制器_第7张图片

重命名

git版本控制器_第8张图片

git 远程操作

    远程仓库和开发者机器上的内容是一模一样的...

    远程服务器起到了备份+分享的主要2个作用    

    远程仓库保存的是git 仓库..不包含暂存 和 工作区域 文件

git版本控制器_第9张图片

支持4种协议:

    local本地

    ssh 这个最常用

    git

    http/https    开源项目用的比较多

git版本控制器_第10张图片

git版本控制器_第11张图片



*********************************

    git commit -m "init repo"    --将 暂存区域 的文件 提交到 git仓库区域

git版本控制器_第12张图片

    git status  

    [root@localhost IterCast-Demo]# git status    
    # On branch master
    #
    # Initial commit
    #
    # Untracked files:
    #   (use "git add ..." to include in what will be committed)
    #
    #	README
    #	hellogit.rb
    nothing added to commit but untracked files present (use "git add" to track)
    [root@localhost IterCast-Demo]#
Untracked 表示 文件还在工作目录...
[root@localhost IterCast-Demo]# git add README 
[root@localhost IterCast-Demo]# git add hellogit.rb 
[root@localhost IterCast-Demo]# git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached ..." to unstage)
#
#	new file:   README
#	new file:   hellogit.rb
#
[root@localhost IterCast-Demo]