【Git工具篇01】Git仓库的三大区域及简单操作(十分详细简单带图示操作)

一、Git仓库的三大区域

Git 本地仓库有三大区域:工作区、暂存区、版本区。接下来我们以命令为主线介绍 Git 的操作,这里注意一下,Git操作命令中都以git作为开头。
在这里插入图片描述

二、实现一次完整的修改、提交、推送操作

2.1.进入仓库主目录(我的是git-test-code),使用git status查看整个仓库的状态。

在这里插入图片描述

2.2 对工作区进行修改

创建一个文件并再次查看仓库状态,如下图所示,新建文件后,命令行前缀又发生了一些微小的变化,红色 master 后面出现了 * 星号,这表示工作区或暂存区有变化,对文件进行增删改操作都会出现这个星号,另外使用 git status 命令亦可查看详情。
在这里插入图片描述

2.3 添加修改到暂存区以及撤销修改

1、将新增的文件提交到暂存区
git add 文件名
如果对多个文件或目录进行了增删改,可以使用 git add . 命令全部添加到暂存区。
在这里插入图片描述
当我们修改了工作区,git add 命令是将这些修改添加到暂存区,暂存区记录的只是修改。
如果需要撤销暂存区的修改, 执行 git reset – [文件名] 或者 git rm --cached [文件名] 命令即可:
在这里插入图片描述
如果省略最后的文件名,把命令写成 git reset – 即可把暂存区的全部修改撤销。好,现在暂存区的修改被撤销,又回到了工作区。
在这里插入图片描述
【命令】 git diff,它可以用来查看工作区被跟踪的文件的修改详情,此时新建文件 one.txt 并未被跟踪,而已被跟踪的文件 README.md 无修改,所以看不到。注意,只有在版本区中存在的文件才是被跟踪文件。
此时会跳到新的页面,即工作区修改详情页,按 Q 退出此页面。
在这里插入图片描述

同样,此命令也会跳到新的页面,即暂存区修改详情页:【按q进行退出】
在这里插入图片描述

2.4 查看提交历史

关于查看提交历史记录的命令,有些常用的选项介绍一下:

git log [分支名] 查看某分支的提交历史,不写分支名查看当前所在分支
git log --oneline 一行显示提交历史
git log -n 其中 n 是数字,查看最近 n 个提交
git log --author [贡献者名字] 查看指定贡献者的提交记录
git log --graph 图示法显示提交历史

把暂存区的修改提交到版本区,生成一个新的版本:
git commit
在这里插入图片描述
在这里插入图片描述
提交成功!!!

2.5 配置个人信息

接下来需要对 Git 进行一些本地配置:
user.email:写入你自己注册 GitHub 账号的邮箱
user.name:你自己的 GitHub 账号名字
这两个命令设置你的身份信息如下图。git config -l 可以查看配置信息(就不展示截图了):
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.6 提交暂存区的修改

对已经存在的文件进行修改,然后提交到暂存区
在这里插入图片描述

在这里插入图片描述

提交后,暂存区的修改被清空,执行 git log 查看提交记录,紫色框中的十六进制序列号就是提交版本号,这是很重要的信息,每个提交都有自己单独的版本号,就像公民身份证号一样:
在这里插入图片描述
【命令】git log --reverse
提交版本是按时间倒序排列的,也就是最近的提交排在最上面,你可能需要查看时间正序排列的信息

在这里插入图片描述

三、版本回退

如果发现 one.txt 文件内容有误,怎么做?可以修改此文件然后再次添加到暂存区、提交、推送,也可以撤销最近一次提交,修改文件后重新提交推送。现在使用后一种方法来演示撤销提交的操作流程。

首先执行 git reset --soft HEAD^ 撤销最近的一次提交,将修改还原到暂存区。–soft 表示软退回,对应的还有 --hard 硬退回,后面会讲到,HEAD^ 表示撤销一次提交,HEAD^^ 表示撤销两次提交,撤销 n 次可以简写为 HEAD~n。软退回一个提交后执行 git branch -avv 命令查看分支信息:
在这里插入图片描述
在这里插入图片描述
可以看到本地仓库的 master 分支的版本号已经发生了变化,变成了前一次提交的版本号,中括号里也有提示信息,本地分支 master 落后其跟踪的远程分支 origin/master 一个提交。

执行 git status 查看仓库状态,果然上一个提交中的修改全部扔回了暂存区:
在这里插入图片描述
再次修改 one.txt 文件,执行 git add . 命令将新的修改添加到暂存区,然后执行 git commit 命令生成新的提交:
在这里插入图片描述

四、处理commit时间线分叉

执行 git status 和 git branch -avv 查看仓库状态和分支状态:
在这里插入图片描述
可以看到本地仓库的 master 分支与远程仓库的 origin/master 分支在提交版本上有了冲突,又叫做提交时间线分叉。
因为刚才的提交操作不是基于远程仓库 origin/master 分支的最新提交版本,而是撤回了一个版本。
这种情况下也是可以将本地 master 分支推送到远程仓库的,需要加一个选项 -f ,它是 --force 的简写,这就是强制推送:
在这里插入图片描述
执行 git branch -avv 看一下分支信息,本地 master 与远程 master 的版本号一致,前四位都是 b06f5f8,在浏览器上刷新 GitHub 页面。

五、本地仓库commit变化记录

假设此时发现情况不对,第一次的提交是正确的,刚才的版本回退操作全都是误操作,怎么办?
再次执行一次版本回退吗?当然不需要啦,我们有 git reflog 命令,它会记录本地仓库所有分支的每一次版本变化。
实际上只要本地仓库不被删除,随你怎么折腾,都能回退到任何地方。
reflog 记录只存在于本地仓库中,本地仓库删除后,记录消失。执行此命令如下图所示:
在这里插入图片描述
可以直接执行命令 git reset --hard [版本号] ,如果记不清版本号,也可以根据上图第 3 行的信息,执行 git reset --hard HEAD@{2} 命令,其中 HEAD@{2} 就是上图第 3 行第 2 列所示,这个命令的意思是回到当前分支最近两次提交版本变化前:
在这里插入图片描述
本节全部命令中,只有 push 是需要联网执行的,它对远程仓库进行了修改。

六、总结

本篇文章主要讲述:
Git 仓库的三大区域
修改工作区
将工作区的修改添加到暂存区
从暂存区撤销修改到工作区
查看提交历史
配置个人信息
完成一次提交
版本回退
处理提交时间线分叉问题
使用 git reflog 命令查看本地仓库版本变化

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值