git 回退一个文件的版本

测试背景

1.新建一个文件 README.md

写几行测试用的文本 如下:
image.png
提交到远程仓库

$ git add .
$ git commit -m 'add a text'
$ git push

2.修改这个文件 README.md

增加了内容(模拟修改) 如下:
image.png
再次提交到远程仓库 模拟错误提交 提交步骤如上

回退步骤

1. 使用命令 git log 文件名 查看该文件的提交日志

$ git log README.md
commit 00c9e47d7030685dc50b079b8cd640ec78657d38 (HEAD -> master, origin/master, origin/HEAD)
Author: XXXXXXXXXXXXXXXXXXXXX
Date:   Sat Apr 10 22:01:51 2021 +0800

    change txt

commit ede81898cad339f6dc4f537b3e52acf3667274d6
Author: XXXXXXXXXXXXXXXXXXXXX
Date:   Sat Apr 10 21:49:54 2021 +0800

    change readme.md

通过git log的结果可以找到提交的版本号 例如:00c9e47d7030685dc50b079b8cd640ec78657d38

2.使用git reset 版本号 文件名 回退文件到指定版本号的版本

例如: 执行 git reset ede81898 README.md

$ git reset ede81898 README.md
Unstaged changes after reset:
M       README.md

执行后回退命令(不带参数)后 查看当前状态

$ git status
On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   README.md

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   README.md

发现回到了修改该完文件的时候,只是回退了提交的状态 提交后->提交前,本地还保留着回退之前的内容,此刻继续修改文件,修改完成后照常提交即可

3.使用git checkout – 文件名 撤销本次修改

  1. 文件版本回退后 如果想撤销该文件的修改 使用命令 git checkout -- 文件名 注意文件名前必须有双横杠
  2. Git 2.23版本之后,增加了命令 git restore --staged <file> 也可以实现撤销文件的修改

补充知识点

  1. git reset --mixed:此为默认方式,不带任何参数的git reset,这种方式,它回退到某个版本,只保留源码,回退commit和index信息
  2. git reset --soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
  3. git reset --hard 彻底回退到某个版本,本地的源码也会变成为上一个版本的内容
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值