之前我们讲了文件的修改,本次我们将对文件的删除和误删恢复操作进行介绍。
我在本地工作区中新增了几个文件,我们通过ls -la命令来查看一下。
此时,如果我想删除file.txt文件,直接用rm <文件名>进行删除
此时,工作区的file.txt已经被删除。由于没有添加到暂存区,也没有提交到版本库,此次删除无法恢复。
当我们将文件提交到暂存区后,通过rm删除没用的文件,会提示你最近添加和删除的操作
如果你误删了file.txt,可以用git checkout -- <文件名>将暂存区中的file.txt恢复到本地工作区,此时本地暂存区将恢复到git add. 时的状态。
但如果已经将删除后的文件提交到本地仓库,误删的文件将无法通过git checkout恢复。
我们需通过上一篇的git reset版本回退来恢复误删的文件。但此时恢复的文件将是版本库中的最新版本,之后所做的修改将无法恢复。
如果你将误删后的版本推送到了远程仓库,此时远程仓库中的文件也已被移出,想要恢复则需要如下操作:
查看版本信息,并回退到想要的版本
我们照之前的操作将file.txt添加到暂存区,然后提交到本地仓库并推送至远程仓库
这时,提示我们需要先从远程仓库拉取项目。
但在拉取远程仓库时却出现了问题。然后我又重新回到之前的版本,这次我对file.txt文件直接进行编辑。
重新提交到本地仓库,并在推送到远程仓库前拉取远程项目,提示当前版本与其他版本有冲突,需要手动合并。
又重新对file.txt进行添加、提交等操作
此时修改后的file.txt被成功提交到远程仓库。
注:由于远程仓库中已是删除file.txt后的版本,所以在版本回退后,如果直接进行添加等操作,删除的文件还是会在拉取时被移除。