版本管理篇:《git的简单介绍》

版本管理篇:《Git的简单介绍》

总括:一张Git思维导图,帮大家简单得梳理Git的常用知识。根据2W1H的思维模型,从以下三个方面来介绍。
在这里插入图片描述

利用Git:提高我们的工作效率

不知道在工作中,大家是否存在这样的烦恼。文档数量多且命名不清晰导致文档版本混乱,每次编辑文档需要复制,不方便,多人同时编辑同一个文档,容易产生覆盖。当我们学会了Git,这些问题就会迎刃而解。接下来给大家介绍Git的定义和使用。

Git:一种版本管理控制系统

1. 版本管理
在认识Git之前,我们得清楚什么是版本管理。设想工作中有一个这样的场景,当领导需要对一份Excel数据进行修改,你会这么做?是不是会先对其备份,然后在原来的基础上进行修改,那为什么要先进行备份那?因为不知道哪一天,领导要让你还原数据,让你把数据恢复到之前的某个时间点上。对于这些不断得进行的数据备份,文件管理的过程,我们将其称为版本管理。

版本管理是一种记录文件变化的方式,以便查阅特定版本的文件内容。

2. git的定义
git是一个版本管理控制系统(缩写VCS),它可以在任何时间地点,将文档的状态作为更新记录保存起来,也可以在任何时间点,将更新记录恢复起来。

3. git的安装
第一步:下载
官网下载地址:https://git-scm.com/downloads,根据自己电脑的操作系统,选择相应的版本。
第二步:安装
安装包下载到本地指定的目录后,傻瓜式安装(默认值安装),一直点击下一步就可以了。
第三步:查看安装是否成功。
1.桌面任意位置鼠标右击,会出现git gui here,git bash here这样的下拉菜单。
在这里插入图片描述
2.查看版本:git --version
Git Bash Here单击后,输入git --version命令,如果出现如下版本信息的显示,则说明安装成功。

4. git的基本工作流程
工作目录 >> 暂存区 >> git仓库在这里插入图片描述

Git的使用

5. 使用前的配置:在使用git前,需要告诉Git 你是谁,在向git仓库中提交时需要用到。通过以下三个git命令进行全局属性的配置和检验是否配置成功。
5.1 配置提交人姓名:git config --global user.name 提交人姓名
5.2 配置提交人邮箱: git config --global user.email 提交人邮箱
5.3 查看git配置信息: git config --list
在这里插入图片描述
Note:有如下两个注意点
1.如果要对配置信息进行修改,重复上述命令即可;另外一种修改配置的方式,在C:\Users\Administrator(系统用户).gitconfig 路径下打开文件,进行修改,保存即可。
在这里插入图片描述
2.配置只需要执行一次,不需要重复。

6. 提交步骤:git工作流程更加详细得介绍
6.1 git init 初始化git仓库
在这里插入图片描述
git init 命令执行后会在我们创建仓库的同级目录下,生产一个.git文件。
在这里插入图片描述
在这里生成的 .git文件是半透明的,这个半透明在windows操作系统中意味着是隐藏的,我们需要通过查看 >> 隐藏的文件,这一步操作来打开文件,不然文件系统默认是隐藏的我们是开不见的。
在这里插入图片描述
6.2 git status 查看文件状态
在这里插入图片描述
初始化的时候,显示的是 No commits yet (没有文件进行提交),显示的untracked files(没有文件被追踪,也就是说没有文件被git仓库管理,就好我们家新开的菜鸟驿站最初的时候,没有任何货件,既然没有货件就没有必要去追踪了。)
Note:注意这里我们的文件index.html是和我们仓库在同一级目录,这里在没进行任何add或者commit操作之前,此文件标注的颜色是红色的。

6.3 git add 文件列表 追踪文件
在这里插入图片描述
当我们git add index.html 之后,此时index.html会变成绿色,则就说明我们这一次的操作是成功的。本质上,这一步的操作就是将项目文件提交到暂存区

6.4 git commit -m 提交信息 向仓库中提交代码
在这里插入图片描述
这里 -m 代表就是comment的意思,就是我们每一次提交的一些解释性说明。本质上,这一个过程就是,将暂存区的文件提交到git仓库

6.5.git log 查看提交记录
在这里插入图片描述
第一处红色的标记是我们的commitID,这个是用来唯一标识我们每一次的提交记录,有了这个标识我们就可以根据这个ID进行复原,这也就是我们工作中经常会用到的一个操作。因为你永远不清楚你的客户,你的产品经理,哪一天把你现在做的功能砍掉然后重新再来。
第二处标记,就是我们提交时的注释,根据这个注释我们能明白之前修改的原因,修改的大致内容是什么,能够起到提纲挈领的作用。

7. 撤销:难受啊,菇凉。我想回到从前,可是该怎么回去啊,难道是时空穿越嘛。
7.1 用暂存区中的文件覆盖工作目录中的文件: git checkout 文件
第一步:我们新建一个list,html文件,并编辑一段文字
在这里插入图片描述
第二步:把这个list.html文件通过git add命令传到暂存区当中,进行git status查看是否添加成功。
在这里插入图片描述
第三步:我们对list.html文件进行修改,增加一些文本的内容。
在这里插入图片描述
第四步:通过git checkout 命令,用暂存区中的文件覆盖工作目录中的文件,也就是把第三步编辑的内容还原到最初的时候。
在这里插入图片描述

在这里插入图片描述
7.2 将文件从暂存区中删除:git rm --cached 文件
通过git checkout 我们发现list.html 文件依然是绿色的,就说明文件还在暂存区里面。我们首先新建一个test.html文件,然后通过git add 将文件增加到暂存区里面,然后通过git status命令查看,会发现有list.html和test.html文件都存在暂存区当中,然后我们通过git rm 命令删除test文件,最后通过git status检验,会发现test.html文件已经被删除掉,只剩下test.html文件。
在这里插入图片描述
7.3将Git仓库中指定的更新记录恢复出来,并且覆盖暂存区工作目录:git rest --hard commitID

首先我们把test.html和list.html文件通过 git commit 进行第二次提交,然后通过git status 查看发现没有任何文件在需要被提交到git仓库当中,然后通过git log 命令查看,查看提交成功,然后通过第一提交的commitID进行git reset命令,最后通过git config命令验证以上操作是否把Git仓库中指定的更新记录恢复出来,并且覆盖暂存区工作目录。具体的操作流程如下。

Administrator@ZC002 MINGW64 /g/gitHome/git-demo1 (master)
$ git commit -m 第二次提交
[master 8d4cb83] 第二次提交
 2 files changed, 1 insertion(+)
 create mode 100644 list.html
 create mode 100644 test.html

Administrator@ZC002 MINGW64 /g/gitHome/git-demo1 (master)
$ git status
On branch master
nothing to commit, working tree clean

Administrator@ZC002 MINGW64 /g/gitHome/git-demo1 (master)
$ git log
commit 8d4cb83c01a5cf4d3566430d0d631531d4e4a038 (HEAD -> master)
Author: shisan <1058084281@qq.com>
Date:   Sun Mar 7 15:23:34 2021 +0800

    第二次提交

commit e60529c71b45772ff72d6474938e99fce1a1ba43
Author: shisan <1058084281@qq.com>
Date:   Sun Mar 7 15:00:50 2021 +0800

    第一次提交

Administrator@ZC002 MINGW64 /g/gitHome/git-demo1 (master)
$ git reset --hard e60529c71b45772ff72d6474938e99fce1a1ba43
HEAD is now at e60529c 第一次提交

Administrator@ZC002 MINGW64 /g/gitHome/git-demo1 (master)
$ git log
commit e60529c71b45772ff72d6474938e99fce1a1ba43 (HEAD -> master)
Author: shisan <1058084281@qq.com>
Date:   Sun Mar 7 15:00:50 2021 +0800

    第一次提交

Administrator@ZC002 MINGW64 /g/gitHome/git-demo1 (master)

8. git进阶:此阶段对于非软件开发的朋友可以忽略不看

8.1 分支:为了便于理解,大家暂时可以认为分支就是当前工作目录中代码的一份副本。使用分支,可以让我们从开发主线上分离出来,以免影响开发主线。

  • 主线:主分支(master):第一次向git仓库中提交更新记录时自动产生的一个分支。一般我们把主分支,用来作为上线的版本。
  • 开发分支(develop):作为开发的分支,基于master分支创建。
  • 功能分支(feature):作为开发具体功能的分支,基于开发分支创建。

8.2 分支命令

  • .git branch 查看分支
    第一次向git仓库中提交更新记录时自动产生的一个master分支。在这里插入图片描述

  • git branch 分支名称 创建分支
    通过git branch 创建分支,再通过git branch查看分支是否 创建成功,创建成功后的效果如下图,分支是白色没有带星号的状态。在这里插入图片描述

  • git checkout 分支名称 切换分支
    通过git checkout 命令分支由master分支变换成develop分支了。效果如下图。- 此时develop的状态是绿色带有星号的。
    在这里插入图片描述
    Note:在切换分支之前,得让分支是出于working tree clean状态,也就是没有任何需要提交的状态。不然会出现问题。
    例如:现在有一个develop.html文件,我们首先把他增加到develop分支的暂存区当中,不进行git commit操作,然后切换分支到master分支,此时我们会发现master分支上面会有develop文件。

  • git merge 来源分支 合并分支
    使用场景:将当前分支的工作合并到其他分支当中。
    例如:将当前分支的工作合并到主分支当中,首先我们得站在主分支的角度去思考,也就是说首先我们得git checkout master切换到主分支,然后git merge develop,然后我们就会发现在主分支当中会发现develop.html。此时的develop分支依然存在。

  • git branch -d 分支名称 删除分支 (分支被合并后才允许删除) (-D 强制删除)
    成功显示的状态是:Deleted branch,这里的d参数,代表的是分支被合并后才能删除,D参数这是强制删除,也就是当我们新建一个分支但又没有合并的时候,该参数能够强制把新建的分支删除掉。不能在当前分支,删除自己所在的分支。也就是说必须得切换到其他分支,才能对当前分支进行删除。

8.3 暂时保存更改:可以暂时提取分支上所有的改动并存储,让开发人员得到一个干净的工作副本,临时转向其他工作。

  • 使用场景:分支临时切换。通俗得理解,就相当于我们执行剪切操作。

  • 存储临时改动:git stash。相当于ctrl + x
    在这里插入图片描述
    最后一步切换到master分支后,发现没有develop文件。
    在这里插入图片描述

  • 恢复改动:git stash pop。相当于ctrl + v
    在这里插入图片描述
    执行完pop命令后,会发现develop分支出现develop.html文件
    在这里插入图片描述

以上就是关于git命令的一些简单得介绍,接下来的文章是继续和大家分享与git紧密相关的GitHub。前大家关注,版本管理篇:《GitHub的简单介绍》

— — 十三 2021.3.7

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值