Git 时光穿梭鸡 删除文件 以及批量删除文件

    

 

先添加一个新文件test.txt到Git并且提交:

 

 

 一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了

$ rm test.txt

 

 这个时候,Git知道你删除了文件,

因此,工作区和版本库就不一致了,

git status命令会立刻告诉你哪些文件被删除了:

 

 

 

 现在你有的选择:

  情况一   是确实要从版本库中删除该文件,那就用命令  git rm 删掉,

      并且  git commit

     

     

  现在,文件就从版本库中被删除了。

 

 

  情况二   另一种情况是删错了,并且还没有add到暂存区

     因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:

 

     只是在工作区删除了

    可以使用git checkout 命令从 版本库 恢复  

    $ git checkout -- test.txt

 

   ( 恢复全部用 git checkout . )

 

 

  情况三 删错了, 而且已经add到暂存区了, 但是还没有提交    想恢复

    参考Git 时光穿梭鸡 撤销修改  中的工作区内容修改了, 并且已经add到暂存区了, 想回退到上一个版本

    

      用命令git reset HEAD <file>

      >>>>>>>>可以   把暂存区的修改撤销掉(unstage),并且 重新放回工作区:

 

       git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。

          当我们用HEAD时,表示最新的版本。

 

        git reset HEAD test.txt   回退单个文件

        git reset HEAD  全部回退

            

 

          再用git status查看一下,现在暂存区是干净的,工作区有修改:

          

 

         再使用    git checkout .    或   git checkout --test.txt   丢弃工作区的修改

          

    现在工作区同版本库一致了

 

 

>>>>>>>>>>>补充 批量删除文件

 

 

参考git批量删除文件和批量提交

 

      >>>>如果你用的rm删除文件,那就相当于只删除了工作区的文件   想恢复,参考上面情况二

  >>>>如果你用的是git rm删除文件,那就相当于不仅删除了文件,而且还添加到了暂存区

      想恢复,参考上面情况三

 

新建目录 removeTest  并在其中新建两个文件

 

add  到暂存区

 

 

commit到版本库

 

批量删除方法一:(如果是删除当前文件夹下所有文件,方法一将删除该空文件夹一并删除,不会保留文件夹

      操作:(cd 到你要删除的目录下或者 * 可用“”文件夹名“”代替)  -r 代表 recursively(递归)

 

        $ git rm * -r

        $ git commit -m "clear"

        
    $ git rm removeTest -r

       

      

       查看一下状态

       

 

     此时  removeTest下的文件  连同 该目录  都被删除了    此次删除发生在工作区 和 暂存区  

              ( 如果想撤销此次删除 , 参考上面情况三)

      

 

     commit提交此次删除 , 此时版本库中也删除了

      (如果想撤销 , 见底部链接)

        

 


方法二:手动在文件管理器中删除批量文件,然后执行命令:(如果是删除当前文件夹下所有文件,方法二仍会保留该空文件夹

        $ git add .

        $ git commit -m "clear"

 

 

 

现在,假设你不但改错了东西,还从暂存区提交到了版本库,怎么办呢?

Git入门 时光穿梭鸡 版本回退 工作区 暂存区    参考其中的版本回退内容

 

 

posted @ 2019-05-11 16:00  萌胖胖  阅读(524)  评论(0编辑  收藏  举报