感觉有些人没理解原文意思,我解释一下...
Topic source当你要删除文件的时候,可以采用命令:rm test.txt
这个时候有两种情况
第一种情况:的确要把test.txt删掉,那么可以执行 git rm test.txt git commit -m "remove test.txt" 文件被删除,且删除记录上传本地库
第二种情况:误删文件,想恢复,这时候还没有commit -m "remove test.txt",执行git checkout test.txt将文件恢复。
如果执行完git commit -m "remove test.txt"后就不能用checkout恢复了,得用git reset --hard HEAD^
而且我还要说,其实只要你用了Git,无论怎么搞,你都可以找回曾经的任何一个版本的文件,几遍是rm file或者Git rm file 还 commit,都一回事,你提交也只是提交一个删除记录而已,这次版本的文件,他删除也只是相对于你的工作区目录,你以为Git本地仓库没有给你保存原文件吗?永远会有,只要你记住那个ID
说的没错,等于只要用了git rm就是直接从版本库里删除了,就无法使用git checkout还原了,但如果直接用rm删除那就等于从工作区删除,不是从版本库删除,就可以用git checkout还原了
- 1
- 2
丶补天丶
当你要删除文件的时候,可以采用命令:rm test.txt
这个时候(也就是说这个时候只执行了rm test.txt)有两种情况
第一种情况:的确要把test.txt删掉,那么可以执行 git rm test.txt git commit -m "remove test.txt" 然后文件就被删掉了
第二种情况:删错文件了,不应该删test.txt,注意这时只执行了rm test.txt,还没 有提交,所以可以执行git checkout test.txt将文件恢复。
并不是说执行完git commit -m "remove test.txt"后还能用checkout恢复,commit之后版本库里的文件也没了,自然没办法用checkout恢复,而是要用其他的办法