我们通过git add命令将文件提交到暂存区之后,发现文件提交错了,就可以通过git restore --staged撤销在暂存区提交的文件。
通过实例演示一下
当前目录下有三个文件进行了修改,并提交到了暂存区。通过git ls-files命令可以查看暂存区的文件
$ ls
README.md a.txt main.cpp
lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/新建文件夹/test001/test001 (master)
$ git add .
warning: LF will be replaced by CRLF in a.txt.
The file will have its original line endings in your working directory
lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/新建文件夹/test001/test001 (master)
$ git ls-files
README.md
a.txt
main.cpp
lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/新建文件夹/test001/test001 (master)
$ 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
new file: a.txt
modified: main.cpp
lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/新建文件夹/test001/test001 (master)
我们撤回暂存区的a.txt文件
lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/新建文件夹/test001/test001 (master)
$ git restore --staged a.txt
lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/新建文件夹/test001/test001 (master)
$ git ls-files
README.md
main.cpp
lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/新建文件夹/test001/test001 (master)
$ 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
modified: main.cpp
Untracked files:
(use "git add <file>..." to include in what will be committed)
a.txt
可以看到暂存区没有a.txt文件了,查看状态可以看到,a.txt文件的状态变成了未跟踪状态。