使用git restore命令撤销你在工作区的修改

本文介绍了如何使用Git的restore命令来撤销工作区中的文件修改。通过示例展示了当代码修改错误时,如何回退到修改前的状态,从而保持代码的原始状态。提醒在使用gitrestore.撤销所有文件修改时需谨慎。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

        在工作区修改代码时,如果发现修改错误了,想回到修改之前的状态,就可以使用git restore命令

我们举个例子看一下:

工作区有两个文件,文件内容如下

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/新建文件夹/test001/test001 (master)
$ ls
README.md  main.cpp

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/新建文件夹/test001/test001 (master)
$ cat main.cpp
#include <stdio.h>

int main()
{
        printf("this is first code");
        return 0;
}

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/新建文件夹/test001/test001 (master)
$ cat README.md
this is readme

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/新建文件夹/test001/test001 (master)
$

我们对文件内容作修改,修改后,文件内容如下

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/新建文件夹/test001/test001 (master)
$ ls
README.md  main.cpp

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/新建文件夹/test001/test001 (master)
$ cat main.cpp
#include <stdio.h>

int main()
{
        int num = 10;
        printf("num = %d\n", num);
        return 0;
}

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/新建文件夹/test001/test001 (master)
$ cat README.md
welcome to China

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/新建文件夹/test001/test001 (master)
$

使用git status看下状态

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/新建文件夹/test001/test001 (master)
$ git status
On branch master
Your branch is up to date with 'origin/master'.

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
        modified:   main.cpp

no changes added to commit (use "git add" and/or "git commit -a")

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/新建文件夹/test001/test001 (master)
$

如果我们不想保留修改的内容,就可以使用git restore filename撤销在工作区的修改

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/新建文件夹/test001/test001 (master)
$ git restore README.md

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/新建文件夹/test001/test001 (master)
$ ls
README.md  main.cpp

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/新建文件夹/test001/test001 (master)
$ cat README.md
this is readme

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/新建文件夹/test001/test001 (master)
$ git restore main.cpp

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/新建文件夹/test001/test001 (master)
$ cat main.cpp
#include <stdio.h>

int main()
{
        printf("this is first code");
        return 0;
}

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/新建文件夹/test001/test001 (master)
$

可以看到,代码已经回退到我们修改之前的状态了。

也可以使用git restore .命令撤销工作区的所有文件的修改,但是要慎用。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大草原的小灰灰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值