Discuss / Git / 感觉有些人没理解原文意思,我解释一下...

感觉有些人没理解原文意思,我解释一下...

Topic source

丶补天丶

#1 Created at ... [Delete] [Delete and Lock User]

当你要删除文件的时候,可以采用命令: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恢复,而是要用其他的办法

你说对了,有人理解错了,老师说的很清楚

不对吧,还是可以恢复啊

渭水君i

#4 Created at ... [Delete] [Delete and Lock User]

是的

对的,git rm 并且提交了之后,就需要使用git reset --hard 版本号来回退了

当你要删除文件的时候,可以采用命令: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

版本区里的文件删除了就恢复不了,这又不是回退,还有恢复这一说的,自己彻底删除了试试看能回退吗

槲寄君

#9 Created at ... [Delete] [Delete and Lock User]

问题是怎么删除版本库里的文件,只要曾经提交到版本库中,就会保存啊

92645464en

#10 Created at ... [Delete] [Delete and Lock User]

说的没错,等于只要用了git rm就是直接从版本库里删除了,就无法使用git checkout还原了,但如果直接用rm删除那就等于从工作区删除,不是从版本库删除,就可以用git checkout还原了


  • 1
  • 2

Reply