Git使用教程-7.删除文件

2021-09-23  本文已影响0人  Justin小贾同学

删除文件

如何删除文件?在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
上一篇下一篇

猜你喜欢

热点阅读