git rm

Git既然作为一个代码仓库,那么肯定是可以执行各种文件操作的。如果我们要删除Git仓库中的文件,那要怎么做呢?

首先,执行shell的rm指令将README文件删除,接下来执行git status查看当前代码库状态,如下所示。

  1. GradleTest git:(master) rm README
  2. GradleTest git:(master) git status
  3. On branch master
  4. Changes not staged for commit:
  5. (use "git add/rm <file>..." to update what will be committed)
  6. (use "git checkout -- <file>..." to discard changes in working directory)
  7.  
  8. deleted: README
  9.  
  10. no changes added to commit (use "git add" and/or "git commit -a")
  11. GradleTest git:(master) git add README
  12. GradleTest git:(master) git commit -m "delete readme"
  13. [master 499d4d0] delete readme
  14. 1 file changed, 1 deletion(-)
  15. delete mode 100644 README

由此可以发现,通过rm指令确实可以删除一个文件,Git不仅可以监听到增加新文件、修改文件,还可以监听到文件的删除操作,同样通过git add\commit操作来完成一次新的提交。

那么除了从Shell的删除指令rm的方式执行删除操作之外,Git还提供了它的删除指令——git rm。

重新创建一个新的README文件,并提交到代码仓库。接下来,使用git rm指令删除这个文件,代码如下所示。

  1. GradleTest git:(master) git rm README
  2. rm 'README'
  3. GradleTest git:(master) git status
  4. On branch master
  5. Changes to be committed:
  6. (use "git reset HEAD <file>..." to unstage)
  7.  
  8. deleted: README
  9.  
  10. GradleTest git:(master) git commit -m "delete readme again"
  11. [master 27493e5] delete readme again
  12. 1 file changed, 0 insertions(+), 0 deletions(-)
  13. delete mode 100644 README

由此可见,git rm指令省去了重新执行git add的操作。