git快速入门(2)__版本比较、回退

这篇具有很好参考价值的文章主要介绍了git快速入门(2)__版本比较、回退。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实验一 修改内容回退

实验目的:通过实验理解三个区的区别,并练习如何对三个区的修改进行比对、如何撤销三个区的修改!

1.关于git本地文件夹结构

不考虑远程仓库,git本地目录中实际包括了三个区

git的三个区进行了说明

Git - 重置揭密 文中对三个区的讲解非常通透,大家可以看一下

git快速入门(2)__版本比较、回退

如果我们从远程仓库克隆到本地文件夹中时,本地仓库和远程仓库的内容一致。

同时,本地三个区内容可以保持一致。

即 本地仓库 == 暂存区 == 工作区

我们通过 git add 命令可以将新增 、修改 、删除的文件提交到暂存区

我们通过 git commit 命令可以将暂存区的内容提交到本地仓库

git status 显示的状态,就是比较工作区和暂存区的不同 、 比较 暂存区和本地仓库的不同。

2.操作步骤

  1. 请大家使用自己的gitee账号登录gitee.com

  2. 请大家在计算机上设置git账号

git全局设置,配置用户名和邮箱(这些信息大家也可以可以从gitee上复制)

如果不设置,后期提交时,git仓库不知道是谁提交的。全局设置只需要设置一次,以后就不用再设置了,机房每次都会复原,所以大家每次都要设置一下。

在命令行中执行如下信息, 用户名 和 邮箱换成你的git账号的

git config --global user.name "xxxx"

git config --global user.email "xxxx@126.com"

  1. fork 仓库  cmo_week04 到你的gitee上

git快速入门(2)__版本比较、回退

点击账号后,点击确认按钮

git快速入门(2)__版本比较、回退

此时,查看你的仓库,就可以看到这个新的仓库了

git快速入门(2)__版本比较、回退

3.将你刚fork的仓库clone到本地

新建文件夹 week5

在week5的父目录上,右键点击“git bash here” 打开命令窗口

git快速入门(2)__版本比较、回退

在命令窗口中输入命令:注意命令中的仓库地址要改为你自己fork的那个地址奥

git clone cmo_week04: 软件配置管理 第四周课程练习仓库 week5\

git快速入门(2)__版本比较、回退

克隆后结果如下,

这就是一个git工作区。在隐藏文件夹 .git 中有暂存区本地仓库文件夹。

git快速入门(2)__版本比较、回退

4. 新建012.txt 使其在不同区内容不同

我们要实现的目标如下:

git快速入门(2)__版本比较、回退

下面我们来实现上面的状态

(1) 新建012.txt,文件内容为1,

(2)在week5文件夹中点击右键菜单 git Bash here。。 打开命令行窗口。依次执行 提交到本地库

git add . 工作区文件提交到暂存区

git commit -m "yourname:xxxx add 001.txt --1 " 暂存区文件提交到工作区

git快速入门(2)__版本比较、回退

(2) 再修改012.txt内容,追加一行内容为“2”后,提交 到暂存区

git add . 工作区文件提交到暂存区

用git status 可以看到系统提示绿色的012.txt,这就表示暂存区和本地仓库文件内容不一致

git快速入门(2)__版本比较、回退

(3) 再修改012.txt内容,追加一行内容为“3”

git快速入门(2)__版本比较、回退

此时三个区的文件状态达到目标状态。如下:

git快速入门(2)__版本比较、回退

5.文件夹复制6份

为了测试不同情况,大家可以将该文件夹复制四份,文件名合法即可

git快速入门(2)__版本比较、回退

6.文件比较

这里大家可以使用比较工具比较一下暂存区和工作区

git diff 比较工作区与暂存区的所有文件

git diff filename 比较工作区与暂存区的指定文件

git diff 版本号 比较工作区与指定版本

git diff --cached 文件名 比较暂存区与最新提交版本的文件的差别

git diff HEAD 文件名 比较暂存区、工作区的与最新提交之间的差别

git diff 版本号1 版本号2 文件名 比较两个版本号之间的指定文件的差别

详细区别大家可以参看博客git diff 和 git diff –cached 和 git diff HEAD实际应用中的区别对比+详细解释_git diff 和git diff head-CSDN博客

git 按行为单位管理文件

(1) 比较工作区与暂存区

为了顺利执行一下操作,请先进入刚才复制的文件夹。通过右键菜单 “git Bash Here ..”打开git命令窗口

git diff 比较工作区与暂存区的所有文件

git diff filename 比较工作区与暂存区的指定文件

git diff 012.txt 比较工作区与暂存区的012.txt

git快速入门(2)__版本比较、回退

(2)比较暂存区和本地仓库

git diff --cached 文件名 比较暂存区与最新提交版本的文件的差别

git diff --cached 012.txt 比较暂存区与最新提交版本的文件的差别

git快速入门(2)__版本比较、回退

(3)比较本地仓库最新版本和工作区

git diff HEAD filename 比较当前工作目录中的文件012.txt与最近的一次提交

git diff HEAD 012.txt 比较当前工作目录中的文件012.txt与最近的一次提交(即HEAD指向的提交)之间的差异,并

将差异输出到终端上。

比较不同版本的差别

git快速入门(2)__版本比较、回退

(4)比较不同版本的差别

git diff 版本号1 版本号2 文件名 比较两个版本号之间的指定文件的差别

为了能比较版本,你可以通过 git log --oneline 先查看日志、

git diff d50d0a8 e693478 比较版本d50d0a8 版本e693478之间的指定文件的差别

git快速入门(2)__版本比较、回退

7.撤销修改

下面我们来实验如何进行不同区修改内容的回退。

git快速入门(2)__版本比较、回退

(1) 工作区修改的回退

进入刚才复制的一个文件夹,打开git命令窗口

git checkout filename 撤销工作区中对某文件的修改,回复到和暂存区一致

git checkout  撤销工作区中对所有文件的修改,回复到和暂存区一致

git checkout  012.txt 执行之后,工作区012.txt的内容回复为 12,和暂存区一致了

git快速入门(2)__版本比较、回退

(2) 暂存区修改的回退

进入刚才复制的一个文件夹,打开git命令窗口

git reset HEAD :此命令将取消暂存指定文件的更改,从而使其退回到未暂存状态。

git reset HEAD 012.txt 暂存区额内容回复为1

git快速入门(2)__版本比较、回退

(3)本地版本库提交的回退

有时我们刚提交到本地库了,但是又后悔了,或者最近几个提交我都不想要了,版本库和暂存区都想回到之前的状态。

git reset 版本号 本地仓库和暂存区退回到指定版本

git reset HEAD^ 本地仓库和暂存区退回到上个版本 ^表示父版本

git reset HEAD~3 本地仓库和暂存区退回到HEAD所指定的版本之前的第三个版本

git reset e2dd617 本地仓库和暂存区退回到指定版本e2dd617

在使用 Git 时,波浪线 (~) 和插入符号 (^) 都可以与 Git 中的版本号一起使用来指定提交历史记录中的特定版本。

波浪线和插入符号的主要区别在于它们如何选择版本。波浪线(~)表示“较早的提交”,而插入符号(^)表示“父提交”。

如果要父版本的父版本就用 git reset HEAD^^

当然也可以用波浪线 git reset HEAD~3 表示HEAD之前的第三个提交

我们可以使用git log --oneline 查看日志情况

git快速入门(2)__版本比较、回退

git reset HEAD^ 工作区和暂存区退回到上个版本,工作区保持不变

git快速入门(2)__版本比较、回退

(4) git reset  的 --soft --mix  --hard 的区别

git reset 可以进行版本回退。

我们知道在开发的计算机上存在 git工作区、暂存区和本地仓库

git快速入门(2)__版本比较、回退

当版本回退时。根据是否要让不同的区域回退,就出现了不同的不同的回退命令

a. git reset --hard 【索引】

本地仓库、暂存区、工作区全部回退到指定索引提交后的状态。

所有提交后的修改都被删除掉 。它本质上是撤销了工作区、暂存区以及提交,回退到指定版本

git快速入门(2)__版本比较、回退

b. git reset --mix 【索引】 (缺省为mix,故可省略 --mix)

本地仓库、暂存区回退,工作区不回退。

git reset HEAD 用于对git add等命令的撤销。它本质上是撤销了提交以及暂存区的修改

git快速入门(2)__版本比较、回退

c. git reset --soft 【索引】

本地仓库回退、暂存区、工作区不回退。

git reset --soft HEAD^ 它本质上是撤销了上一次 git commit 命令

git快速入门(2)__版本比较、回退

当某次提交错误,想撤销重新修改后提交,则可以先用--soft回退版本,修改后 重新add修改的文件,然后重新commit。

假设我们之前提交的006.txt错误了,末尾少了一行代码“666”,我们现在可以回退,修改后,再次提交。

此时操作,就会在当前你修改的基础上,把006.txt也修改了

(5)实操

下面我们来实操,看看效果,

(a)  git reset --soft

进入刚才复制的文件夹中,打开git命令窗口

git reset --soft 版本号 让版本库回退到指定版本 工作区和工作区不变

git快速入门(2)__版本比较、回退

git log --oneline 查看提交日志

git reset --soft 97af44a 让版本看和暂存区回退到 97af44a版本 工作区和工作区不变

git status 查看状态

git快速入门(2)__版本比较、回退

然后重新修改后,git add 后,git commit,

git快速入门(2)__版本比较、回退
git快速入门(2)__版本比较、回退

git reset --mixed命令可以起到净化提交历史的作用

当某次提交不正确,想重新提交,可以使用--soft撤销提交,重新修改后,commit。

git reset --soft HEAD^ 本质是撤销上一次commit提交

(b)  git reset --mix

git reset --mix

--mix是缺省的,不写就表示mix

--mix执行后,工作区不变,暂存区和本地仓库都回到该版本。

git快速入门(2)__版本比较、回退

当某次提交错误,想撤销重新修改后提交,也可以先用--mix回退版本,修改后重新add,然后commit。

git reset --mix 97af44a

其中的 97af44a 是git log --oneline中看到的版本的索引

执行后,工作区不变,暂存区和本地仓库都回到该版本。

git快速入门(2)__版本比较、回退
(c)  git reset --hard

有时我们发现最近的的几次修改都是不对的,那么我们可以将本地仓库、暂存区、工作区全部回退到历史版本。

该命令是最为常用的命令。

git reset --hard 97af44a

其中的 97af44a 是git log --oneline中看到的版本的索引

执行后,工作区、暂存区和本地仓库都回到该版本。

git快速入门(2)__版本比较、回退

8 git revert

适用情况:适合公有分支

    它和 git reset 的不同之处在于,他的撤销,其实是增加一个相反的版本。实现撤销。

git快速入门(2)__版本比较、回退文章来源地址https://www.toymoban.com/news/detail-489688.html

  1. 销提交到暂存区的修改
  2. 撤销commit 提交
  3. git push 或撤销 提交

到了这里,关于git快速入门(2)__版本比较、回退的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Git】—— 版本控制(忽略文件、查看修改内容,撤销未提交的修改、查看历史提交记录)

    目录 一、准备工作 二、忽略文件 三、查看修改内容 四、撤销未提交的修改 五、查看提交记录         前面学习了Git最基本的用法,包括安装Git、创建代码仓库以及提交本地代码。         下面将要学习版本控制。         先选择一个项目,给它创建一个代码仓库

    2024年02月05日
    浏览(40)
  • git版本回退:revert回退其中一个提交/reset回退到某个版本

      对于已经push或没有push的,回退commit方式一致。只是最后push 的时候 ,如果修改了已经push 的commit,那么需要使用git push -f 区别:git reset commitID;  回退到某个版本。中间的版本都会回退。            git revert commitID; 只将commitID的代码回退。中间的版本不变。且会形成一条

    2024年02月12日
    浏览(38)
  • 【git】Git 回退到指定版本:

    方法一: 使用 git reset 命令 命令可以将当前分支的 HEAD 指针指向指定的提交,从而回退代码到指定版本。 该命令有三种模式:–soft、–mixed 和 --hard。它们的区别在于回退代码的程度不同。 --mixed (默认):将 HEAD 指针和暂存区都回退到指定提交,但不改变工作区的内容。

    2024年02月14日
    浏览(34)
  • git(项目版本管理工具)快速入门

    目录 1、git 1.1、git概述 1.2、git的服务器地址 1.3、git原理 2、客户端操作 2.1、初始化本地库 2.2、添加本地暂存区  2.3、提交本地库 2.4、修改文件 2.5、查看修改历史 2.6、查看版本差异 2.7、删除文件 2.8、文件还原 3、git命令 3.1、初始化本地库 3.2、查看本地仓库状态 3.3、添加本

    2023年04月12日
    浏览(67)
  • Git的基本操作(安装Git,创建本地仓库,配置Git,添加、修改、回退、撤销修改、删除文件)

    Git 是开放源代码的代码托管⼯具,最早是在Linux下开发的。开始也只能应⽤于Linux平台,后⾯慢慢的被移植到windows下,现在,Git可以在Linux、Unix、Mac和Windows这⼏⼤平台上正常运⾏了。 如果你的的平台是centos,安装git相当简单,以我的centos7.6为例: 我们还可以用下面的指令来

    2024年03月28日
    浏览(54)
  • git+VScode 版本回退

    一.\\\" git reset --hard  版本号 \\\" (不推荐,因为是直接把指针指向你要回退到的版本,所以之后的提交记录都会消失) 1.找到要去的版本,复制版本号(比如想要回退到测试111)   2.打开控制台输入:  git reset --hard 3e06a2edd0096b2748e0081464b2b91e78566b1a  git push -f 二.\\\" git revert -n 版本号

    2024年02月15日
    浏览(22)
  • Git怎么实现版本回退

    Git是一款非常强大的版本控制工具,它可以帮助我们管理代码的版本,同时也可以帮助我们回退代码的版本。在Git中,有两种常用的版本回退方式:git reset和git revert。下面,我将为大家详细介绍这两种方式的用法。 git reset是一种比较暴力的版本回退方式,它可以将代码库中

    2024年02月11日
    浏览(24)
  • Git回退版本的方式

    关键命令: git reset 回退原理: git reset --hard 命令会将HEAD指针、当前分支指针和索引区都移动到指定的commit ID,从而重置工作区为该版本。 步骤一:查看版本号 。git log查找历史或使用git reflog命令查找合并操作的commit ID,找到需要回滚的目标版本号 步骤二:使用 git reset --

    2024年02月04日
    浏览(23)
  • git远程仓库版本回退

    如果你的错误提交已经推送到自己的远程分支了,那么就需要回滚远程分支了。 首先要回退本地分支: 紧接着强制推送到远程分支: 注意:本地分支回滚后,版本将落后远程分支,必须使用强制推送覆盖远程分支,否则无法推送到远程分支 使用git reset回退公共远程分支的版

    2024年02月11日
    浏览(34)
  • 使用git reset回退版本

    在介绍版本回退之前先介绍下如何git log命令,可以查看我们的提交历史记录。 先看下我的提交记录 最新的提交中,我在main.cpp中添加了这两行代码  此时,我们就可以使用 git reset --hard 命令进行版本回退 git reset --hard 后面跟你要回退的那个版本的commit值,我们回退到 \\\"配置文

    2024年02月09日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包