git rm与直接rm的区别


git rm

行为:

  1.删除一个文件

  2.将被删除的这个文件纳入缓存区

$ git rm a
rm 'a'
$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        deleted:    a

提交:

  直接 git commit -m ''

$ git commit -m 'delete a'
[master 1cd6efe] delete a
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 a

$ git status
On branch master
nothing to commit, working directory clean

恢复:

  1. 恢复暂存区

  2. 恢复工作区

$ git reset HEAD a
Unstaged changes after reset:
D       a

$ 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:    a

no changes added to commit (use "git add" and/or "git commit -a")

$ git checkout -- a
$ git status
On branch master
nothing to commit, working directory clean

 

直接调用系统的rm

行为:

  从工作区删除了一个文件

$ rm a

$ 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:    a

no changes added to commit (use "git add" and/or "git commit -a")

提交:

  1.把修改加入暂存区

  2.提交暂存区的改动

$ git add a

$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        deleted:    a

$ git commit -m 'delete a '
[master 689a73d] delete a
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 a

$ git status
On branch master
nothing to commit, working directory clean

恢复:

  直接恢复工作区就好了,git checout -- file

$ git checkout -- a

$ git status
On branch master
nothing to commit, working directory clean

 

 

 

  

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM