删除文件
如何删除文件?在Git中,删除也是修改操作。我们先添加一个新文件,并且提交。
23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
$ git add test.txt
23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
$ git commit -m "add a test file"
[master d4aa161] add a test file
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 test.txt
01.png
一般的,我们直接在文件管理器中把没用的文件删了。但是,我们通过git status
命令会发现,Git追踪到工作区和版本库不一致了。
23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
$ rm test.txt
23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
$ git status
On branch master
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
deleted: test.txt
no changes added to commit (use "git add" and/or "git commit -a")
02.png
如果确实需要从版本库中删除该文件,那么就使用命令
git rm
删掉,并且 git commit
。
$ git rm test.txt
rm 'test.txt'
23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
$ git commit -m "del test file"
[master 798def8] del test file
1 file changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 test.txt
03.png
撤销删除
如果不小心删错了,但是版本库还有的,可以很轻松地把误删的文件恢复。
23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
$ git log
commit 798def8365fc6a4273e5deed7a3e2ebf135c60d1 (HEAD -> master)
Author: siebe <2797091353@qq.com>
Date: Wed Sep 22 15:18:22 2021 +0800
del test file
commit d4aa161199fb24da816125372fdc2c1a95f5b93d
Author: siebe <2797091353@qq.com>
Date: Wed Sep 22 15:08:50 2021 +0800
add a test file
commit 502c3cffcd184e6e132cf74c13e2932c041fe184
Merge: f54c91d d9b0f66
Author: siebe <2797091353@qq.com>
Date: Sat Sep 18 01:13:38 2021 +0800
cc
commit f54c91dd42477f8f260cd2fa72a0b31f3f03d75d
Author: siebe <2797091353@qq.com>
Date: Sat Sep 18 01:10:26 2021 +0800
ddd
commit d9b0f66695149cb31d730a6e3aff716f4a3a1e51
Author: siebe <2797091353@qq.com>
23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
$
23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
$ git re
rebase remote replace reset revert
reflog repack request-pull restore
23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
$ git res
reset restore
23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
$ git reset
HEAD ORIG_HEAD master
23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
$ git reset HEAD
HEAD ORIG_HEAD master
23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
$ git reset HEAD^
Unstaged changes after reset:
D test.txt
23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
$ git status
On branch master
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
deleted: test.txt
no changes added to commit (use "git add" and/or "git commit -a")
23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
$ git restore test.txt
23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
$ ls
README.md index.php login.php test.txt
很快啊,文件就恢复了。(有没有马老师的味道)
04.png
网友评论