当前位置:   article > 正文

分布式版本控制系统Git_软回退和混合回退

软回退和混合回退

1.版本控制系统

1.1概述

版本控制系统(version control system),是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。用的比较多的如svn,git等。

1.2版本控制系统工作模式

(1)集中式工作模式

该工作模式存在明显弊端:

1)存在单点问题:若中央版本库服务器宕机,则系统崩溃不可用

2)每台客户机本身不具有版本控制功能

3)该工作模式不能单独控制版本,必须在网络环境下运行

典型的集中式工作模式的VCS是:CVS(版本控制器的一种)、SVN

(2)分布式工作模式

典型的分布式工作模式VCS是:Git

2.Git

2.1Git简介

Git(读音为/gɪt/,gay特:) )是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。[1] Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

2.2Git工作模式

(1)集中式


(2)社区式

2.3Git工作原理

(1)Git的工作过程

第一步:初始化Init()本地版本库;

第二步:Clone()中央版本库到本地;

第三步:把版本程序添加Add()到客户机;

第四步:提交Commit();

第五步:Push()到中央版本库;

第六步:Pull()中央版本库程序到本地;

Push()->Pull()循环往复...

区域分布  Git工作区与版本库的工作流程

2.4Git的下载与安装

(1)下载:下载地址 


    Git是免费开源的系统

(2)安装:点击下载的Git.exe

安装完成。

3.Git本地库操作

3.1本地库初始化

(1)创建目录


(2)初始化


(3)创建用户

    git中用户分为三类:系统用户(--system)、全局用户(--global)、本地用户()

创建用户:

    创建系统用户

    创建全局用户

    创建本地用户:


查看用户:

    查看系统用户:

    查看全局用户:

    查看本地用户:


(4)本地操作 git add、git config、git commit


(5)忽略文件

在工作区中创建一个隐藏文件.gitignore,将要被git忽略的文件名写入到该文件,

然后将.gitignore提交到版本库即可。

(6)查看区别

        ①工作区与暂存区的区别git diff

        ②暂存区与本地库git diff --cached

 (7)撤销修改   

        ①仅在工作区中修改git checkout  --

            若一个文件仅在工作区中修改,还未添加,使用git checkout  --命令将修改内容撤销。

        ②已在暂存区修改git reset HEAD

            若一个文件修改后已经被add到暂存区,可通过git reset HEAD命令将暂存区中的修改撤销。

3.3回退到之前的版本

  (1)查看历史版本git log

            ①基本命令 git log  查看历史版本


            ②git log --pretty=oneline

                以一行形式显示提交日志,但commit-id为长格式


            ③git log --pretty=oneline --abbrev-commit

                以一行形式显示提交日志,但commit-id为长格式


            ④翻页与退出

                回车:一次显示一行

                空格:翻页

                q键:退出命令

  (2)HEAD指针

           HEAD:指向当前版本

           HEAD^:指向当前版本上一个版本

           HEAD^^:指向当前版本前两个版本

           HEAD^^^:指向当前版本前三个版本

           HEAD^~20:指向当前版本前二十版本

  (3)查看可引用历史版本git reflog

        查看当前版本前后所有版本,目的是为了获取commit-id


  (4)版本回退

        ①git reset --soft (软回退)

            分支区内容回退到前一个版本,但暂存区与工作区没有回退

        ②git reset --mixed (混合回退)

            分支区与暂存区内容回退,工作区内容没有回退

            -mixed为默认选项,可以省略

        ③git reset --hard(硬回退)

            分支区,暂存区与工作区内容全部回退

        ④git reset HEAD

            撤销暂存区上一步操作,属于混合回退

   

3.4删除文件

(1)搭建环境

        略。。。

(2)仅查看暂存区文件列表git ls-files


(3)查看暂存区与分支区(本地库)文件列表总和git ls-files --with-tree=HEAD


(4)仅删除暂存区中指定文件git rm --cached <file>


(5)恢复删除文件git reset HEAD <file>


(6)完全删除git rm

        删除了工作区与暂存区中的指定文件,但分支区文件没有被删除


(7)恢复被删文件git reset --hard HEAD



3.5分支管理

(1)Git分支理论

    ①Git主干

    ②Git分支

    ③分支合并


    ④合并后删除

(2)分支基本操作

    ①创建并切换分支git checkout -b <branch>


        git checkout -b dev 相当于以下两个命令的集合:

            git branch dev //创建分支

            git checkout dev //切换分支

    ②查看系统分支 git branch


    ③切换分支git checkout <branch>


    ④删除分支 git branch -d <branch>


 一般情况下,删除分支前,需要先将其合并到其他分支,否则不能删除

    ⑤强制删除分支 git branch -D <branch>


    ⑥合并分支git merge <branch>


(3)分支合并与冲突

 git的冲突单元是文件,即多个分支对同一个文件进行修改,

无论修改什么内容,在合并时肯定会发生冲突

    ①产生冲突的合并

        删除冲突部分内容后重新提交,冲突修复,merging状态结束

    ②无冲突的合并

查看合并日志:






声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/201536
推荐阅读
相关标签
  

闽ICP备14008679号