Discuss / Git / 删除文件

删除文件

Topic source

CR7呜啦啦

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

老师,你最后说的(那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容)这句活是啥意思,

我首先test.txt添加到暂存区,然后提交版本库了,最后我用Git rm 删除文件 然后也提交了 版本库了,然后我用版本回退到add test.txt 这个版本,

t****est.txt文件就出来了,里面的内容也没变,怎样才是丢失数据,我这是丢没丢失

Lifangchao668

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

我想到一种情况,不使用git rm的情况,你删除了某个文件,然后提交到远程,在这次提交中还顺便修改了其他文件,然后你版本回退到上个版本,这时,删除的文件又回来了,但是你上一次提交中被修改的部分也丢失了

我的也是这样  直径用版本的话数据没有丢失

天小六

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

git commit后是可以修改的,修改后不提交就不会更新到版本库,git checkout -- file是恢复版本库里的最新版本。

胡说韬

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

test.txt(2行文字) ——add——commit——rm——checkout——这样删除了你会获得test.txt(2行文字)

test.txt (2行文字)——add——commit——修改增加test.txt的内容(3行文字)——rm——checkout——这样删除了你会获得test.txt(2行文字)

于是,你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。理解了吗?

LCode丶

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

说白了就是最后一次提交以后,你做出的修改因为没有提交到版本库,所以删除文件再从版本库中进行恢复,恢复的是提交的最新版本,这里面并不包括你刚刚做出的修改。

迪8彧

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

【命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。】

意思应该就是git rm前,修改了该文件(这里说修改不包括删除的意思,比如加了一行代码)。如果要恢复恢复的是你最近一次commit的结果。因为最近一次commit的没有你最后修改加的这样代码。所以【丢失****最近一次提交后你修改的内容】的意思就懂了

但是呢,自己在操作的时候,git rm 修改的文件.txt  会有提示:(use --cached to keep the file, or -f to force removal)。

所以 比如用**git rm -f **修改的文件.txt然后根据git status查看,一步一步操作git restore --staged 修改的文件.txt   然后  git restore 修改的文件.txt 。

最终发现【修改的文件.txt 】文件不包含加的那一行代码了。

理解的对不对?

我试了一下,即便从版本库中删除的文件也依然可以通过回退的方式恢复到工作区。(因为每次commit,在git log中都会对应一个版本,回退到相应版本就能恢复出来了,这么看起来的话,文件确实永远丢不了了,总能恢复出来)。


  • 1

Reply