我在git仓库上意外删除了本地文件更改。它们没有被提交或推送。
我的操作步骤是: git status (然后未暂存的文件显示出来,我无意中使用以下命令删除了名为"smdr"的整个文件夹): git checkout -- smdr
然后,文件更改消失了。
如何恢复这些文件(将所有内容都还原到执行git checkout -- smdr命令之前)?
我在git仓库上意外删除了本地文件更改。它们没有被提交或推送。
我的操作步骤是: git status (然后未暂存的文件显示出来,我无意中使用以下命令删除了名为"smdr"的整个文件夹): git checkout -- smdr
然后,文件更改消失了。
如何恢复这些文件(将所有内容都还原到执行git checkout -- smdr命令之前)?
使用Git无法恢复。那些文件并未被提交,因此它们不在历史记录中。你只是通过 git checkout
获取了(不存在的)版本索引。
唯一的希望是使用备份系统。
git checkout
影响的文件。 - vallentin输入 git reflog
并检出所需的提交,它将“恢复”您的存储库到“已删除”的提交。
另一种选择是使用git revert SHA-1
,它将撤消您的提交。它将简单地撤销您的更改。
Git reset将检出给定 SHA-1 的内容。它将使您的分支处于与 SHA-1 相同的状态。
git reset
命令之后,我停止了使用git checkout .
来放弃任何未暂存/未提交的更改。我现在使用的命令更适合这种情况:git reset
。git reset
和git reset --hard
。git stash
也是你的朋友,在删除之前只需将其藏起来,不会有任何损失。养成这两个习惯,仅在切换分支(大多数情况下)时使用 git checkout
,这对我非常有效。