Git版本控制器

一、版本控制

版本控制:是对软件开发过程中,对各种代码、配置文件、说明文件变更的管理,是软件配置管理的核心思想。

编写一个成熟可用的程序是一个工作量很大的工程,不是我们自己一次性可以搞定的工作,所以在开发过程中,有以下特点:

1.多人协作

2.版本迭代:针对当前代码进行修改和升级,通过多次迭代,待到预想的目的。

这时一个版本控制工具就显得很重要。

(一)常见的版本控制工具

CVS:是一个C/S的版本控制软件,主要用于开源的软件管理,是多个开发人员通过一个控制中心系统来记录版本,从而达到保证文件同步的目的,是一种较老的集中式版本控制器。

Svn:也是集中式版本控制工具,它是最优的集中式控制工具。

Git:是一个分布式版本控制工具。

1.分布式

分布式
每个客户端都是一个服务器,都有一个版本库,开发者可以在无网络的环境中进行代码的操作,是通过比对进行下载。

2.集中式(centralized)

集中式
开发者之间的合作方式是共用一个仓库(repository)。无论这个仓库是在本地还是在远端,只要是所有成员都共同存取同一个仓库。

缺点:代码集中于服务器,一旦代码出现问题,很难处理。

优点:代码都集中于svn服务器,不会发生个别新手污染代码的情况。

总结

版本控制:管理文件的内容的变更。

分类

1.集中式:有一个版本仓库,所有人去这个仓库下载或上传。

2.分布式:把每个人的电脑作为一个版本仓库,我们可以在自己的电脑上做版本的管理。

二、Git

(一)Git的发源

作者:linux torvalds

(二)原理

Git中有工作区,暂存区,仓库。

1.工作区

对于文件的添加、修改、删除。

2.暂存区

对工作区的操作完成小阶段的存储,是版本库的一部分。

3.仓库区

表示个人开发的小阶段,记录各种版本。可以查看、回退。

三、Git基本操作

(一)下载安装

通过官网https://git-scm.com/下载git的安装包。

(二)基本操作

1.创建一个git test文件夹,进入有点击右键选择Git Bash Here。

进入后,执行git init创建一个仓库。
在这里插入图片描述
这时候目录里会有一个隐藏文件.git,证明初始化成功。
在这里插入图片描述

2.配置个人信息,可以配置局部信息。
git config user.name ‘名字’
git config user.email ‘邮箱’

这里配置的是一个全局信息。
在这里插入图片描述
使用身份信息的时候,会先找局部身份,没有再去找全局身份。

3.新建一个文件1.txt,使用git status查看工作区。

红色的代表是工作区中的改动的文件。
在这里插入图片描述

4.git add将文件提交到暂存区。

再次git status查看工作区,绿色的代表是暂存区的文件。
在这里插入图片描述

5.使用git commit将暂存区中的文件提交到仓库并生成一个新的版本。

这时再使用git status查看工作区,会得到一个干净的工作区,代表当前工作区没有变动,暂存区中的内容已提交。
在这里插入图片描述

(三)查看版本信息

1.git log

在这里插入图片描述

2.git reflog

在这里插入图片描述

区别

推荐使用git reflog,它会记录已提交和回退的所有版本信息。

git log无法记录回退的记录。

(四)查看版本差异

git diff 版本号 版本号

在这里插入图片描述
在这里插入图片描述

(五)版本回退

1.回退仓库中的代码

将整个版本库回退到指定版本。

git reset --hard 版本号

在这里插入图片描述
在这里插入图片描述

2.工作区代码回退
git checkout
或者
git restore
3.暂存区代码回退

将暂存区中的内容直接撤销。

git reset HEAD 文件名

将暂存区的内容撤销至工作区。

git restore --staged
4.将文件回退到指定版本

先进行准备工作。
在这里插入图片描述
在这里插入图片描述
编写1.txt,写一行1,并且提交。
在这里插入图片描述
新建一个3.txt并提交。
在这里插入图片描述
再次修改1.txt,加一行2,并提交。
在这里插入图片描述
现在想将1.txt回退到第一次修改的状态,但若直接回退版本库,3.txt文件会被删除。文件内容回退就派上用场啦。

(1)回退想要回到的版本号和文件名
在这里插入图片描述
(2)将工作区代码回退
在这里插入图片描述
(3)将缓存区代码提交生成新版本
在这里插入图片描述
若还想再回退回第二次修改时的状态
在这里插入图片描述
在这里插入图片描述

四、分支

(一)分支操作

1.查看所有分支
git branch

在这里插入图片描述

2.创建分支
git branch 分支名

在这里插入图片描述

3.切换分支
git checkout 分支名
4.创建并进入分支
git  checkout  -b 分支名

在这里插入图片描述

5.删除分支
git branch -d 分支名

在这里插入图片描述

6.分支代码合并
git merge 分支名

(二)分支冲突

两个分支修改了同一哥文件中同一块的内容,进行分支合并时就会产生分支冲突。

举一个例子:
在这里插入图片描述
1.在master分支中新建一个文件,插入如下内容,并保存提交
在这里插入图片描述
在这里插入图片描述
2.新建一个分支ljlj,并进入
在这里插入图片描述
3.在分支ljlj中修改第五行1.txt文件,并提交
在这里插入图片描述
在这里插入图片描述
4.切换回master分支,也对它1.txt的文件第五行进行修改,并提交
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5.这时进行分支合并
在这里插入图片描述
这里的提醒,说明想要进行合并的两个分支中的1.txt文件存在冲突,自动合并失败。
那就需要我们自己进行手动修改,并保存提交。

在这里插入图片描述
在这里插入图片描述
这里的HEAD代表当前分支,冲突部分的内容;ljlj就表示ljlj分支的冲突部分内容。
需要手动修改为自己想要的版本,就像这样:

在这里插入图片描述
现在提交即可
在这里插入图片描述
在这里插入图片描述
这里出现了一个问题,按照我们以往的提交格式,出现了报错信息:合并期间无法执行部分提交。
把它改成这样就没问题了:

在这里插入图片描述
这就大功告成了,它还会自动退出当前的合并模式,回到master分支中。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值