在Git中删除也是一个修改操作,我们实际操作如下:
$ git add .
$ git commit -m "add test.txt"
[master c291807] add test.txt
1 files changed, 69 insertions(+), 16 deletions(-)
create mode 100644 test.txt
一般情况下,我们直接在文件管理系统中把没用的文件删除了,或者使用rm
命令删除文件:
$ rm test.txt
这个时候,Git检测到你删除了文件,因此,工作区和版本库就不一致了,git status
命令查看哪些文件被删除了:
$ git status
On branch master
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
deleted: test.txt
no changes added to commit (use "git add" and/or "git commit -a")
根据Git给出的提示,我们有两个选择,一是确实要从版本库删除文件,那就使用git rm file
删掉,并且git commit
:
$ git rm test.txt
rm 'test.txt'
$ git commit -m "remove test.txt"
[master 3fafa4a] remove test.txt
1 file changed, 2 deletions(-)
delete mode 100644 test.txt
现在,文件就从版本库删除了.
另外一种情况是我们删错了,因为版本库里还有,因此可以轻松的把误删的文件恢复到最新版本:
$ git checkout -- test.txt
git checkout
其实就是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以快速复原.
小结
git rm file
命令用于删除一个文件。
如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是只能恢复到最新提交到版本库的版本,提交之后的修改内容将会丢失。