删除文件
Topic source我想到一种情况,不使用git rm的情况,你删除了某个文件,然后提交到远程,在这次提交中还顺便修改了其他文件,然后你版本回退到上个版本,这时,删除的文件又回来了,但是你上一次提交中被修改的部分也丢失了
test.txt(2行文字) ——add——commit——rm——checkout——这样删除了你会获得test.txt(2行文字)
test.txt (2行文字)——add——commit——修改增加test.txt的内容(3行文字)——rm——checkout——这样删除了你会获得test.txt(2行文字)
于是,你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。理解了吗?
【命令
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
CR7呜啦啦
老师,你最后说的(那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容)这句活是啥意思,
我首先test.txt添加到暂存区,然后提交版本库了,最后我用Git rm 删除文件 然后也提交了 版本库了,然后我用版本回退到add test.txt 这个版本,
t****est.txt文件就出来了,里面的内容也没变,怎样才是丢失数据,我这是丢没丢失