Git——撤销和删除操作【git restore / git rm 】

前言:针对文件的撤销修改或者删除文件操作一般有以下几种情况:

1. 撤销文件修改

1.1 git restore – filename — 工作区文件改动未添加到暂存区

  当修改后的文件还未放到暂存区,使用git restore -- filename命令将暂存区的文件还原到工作区。
在这里插入图片描述

1.2 git checkout --staged filename — 文件添加到暂存区未提交到版本区

  当修改后的文件已经提交到暂存区后,又在工作区做了修改。此时使用git restore --staged filename命令先将版本库中的原文件添加到暂存区,再使用git restore -- filename命令将暂存区文件恢复到工作区
在这里插入图片描述

1.3 git reset --hard — 文件提交到版本区未推送到远程仓库

  若修改后的文件已经推送到远程仓库,则之前的文件修改不能撤销。但若只是提交到本地仓库未提交到远程仓库,则还可以通过版本回退命令git reset --hard HEAD^回退到上一个提交版本。
在这里插入图片描述

2. 删除文件操作

  删除文件操作也要针对三个区分别看待:

2.1 git rm – filename — 删除工作区和暂存区文件

  git rm -- filename后面直接加上文件名参数,实际为删除工作区和暂存区的文件,因此如果想要删除保存为新版本就需要重新使用addcommit命令;若想要撤销修改,必须分为两步,第一步:把版本库中的最新版本文件撤销到暂存区,第二步:把暂存区中的文件撤销到工作区,才能最终实现撤销文件删除的操作

  如图使用git status可以提醒,如果想要恢复暂存区的文件,使用git restore --staged filename可以将版本库的文件恢复到暂存区。
在这里插入图片描述
  执行完git restore --staged filename后,使用git status命令,会发现提示使用git restore -- filename可以将暂存区中的文件恢复到工作区。
在这里插入图片描述

2.2 git rm --cached filename — 删除暂存区文件

  只删除暂存区中的文件可以阻止系统对该文件的追踪,使用git rm --cached filename删除暂存区中的文件,系统提示通过git restore --staged filename恢复暂存区文件,不需要恢复工作区文件。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_36749906/article/details/113918554