如何恢复用“ git rm *”删除的文件?

声音21

意外地,我使用本地存储库中的第一次提交删除了所有文件git rm *

Git提交

git commit -m 'IF ELSE'
[master fc9895a] IF ELSE
 14 files changed, 3234 insertions(+)
 create mode 100644 Lecture 03 - Bootstrapping.ppt
 create mode 100644 Makefile
 create mode 100644 codegenerator.cpp
 create mode 100644 error.cpp
 create mode 100644 error.h
 create mode 100644 includelex.h
 create mode 100644 includeyacc.h
 create mode 100644 lexrule.l
 create mode 100644 rule.tab.c
 create mode 100644 stable.h
 create mode 100644 symboletable.cpp
 create mode 100644 test.c
 create mode 100644 yaccrule.y
 create mode 100644 yaccrule2.y

git rm *
rm 'Lecture 03 - Bootstrapping.ppt'
rm 'Makefile'
rm 'README.md'
rm 'codegenerator.cpp'
rm 'error.cpp'
rm 'error.h'
rm 'includelex.h'
rm 'includeyacc.h'
rm 'lexrule.l'
rm 'rule.tab.c'
rm 'stable.h'
rm 'symboletable.cpp'
rm 'test.c'
rm 'yaccrule.y'

我用来恢复的命令序列。

git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    deleted:    Lecture 03 - Bootstrapping.ppt
    deleted:    Makefile
    deleted:    README.md
    deleted:    codegenerator.cpp
    deleted:    error.cpp
    deleted:    error.h
    deleted:    includelex.h
    deleted:    includeyacc.h
    deleted:    lexrule.l
    deleted:    rule.tab.c
    deleted:    stable.h
    deleted:    symboletable.cpp
    deleted:    test.c
    deleted:    yaccrule.y
    deleted:    yaccrule2.y

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    .hg/


git reset --hard HEAD^1
HEAD is now at 9b72b0c first commit


git reset --hard HEAD
HEAD is now at 9b72b0c first commit


 git checkout
 Your branch is up-to-date with 'origin/master'.


 git reset HEAD test.c
 git reset HEAD  Makefile
 git reset HEAD --  Makefile

git status
On branch master
Your branch is up-to-date with 'origin/master'.
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    .hg/

我无法在Ubuntu 14.10,git版本2.1.0上还原文件。有没有一种方法可以还原文件?

jub0bs

侦探工作

根据您对问题的描述,在遇到麻烦之前,您的仓库的历史记录必须包含两次提交:

9b72b0c first commit
fc9895a IF ELSE (HEAD, master)

证据

  • 有关第二次提交的信息在以下命令的输出中

    git commit -m 'IF ELSE'
    
  • 输出

    git reset --hard HEAD^1
    

    (此命令重置当前分支到当前提交的)表示的母体fc9895a具有SHA9b72b0c和消息first commit

将分支重置为所需状态

由于您在运行后尚未进行任何本地更改git rm *,因此您要做的就是回到提交后立即进入存储库的状态IF ELSE

幸运的是,您仍然记录了该提交的短SHA :fc9895a所以,

git reset --hard fc9895a

是使您摆脱困境的命令。

解释

git-reset用于将当前分支(master此处)重置为指定状态(fc9895a此处)。

而且git-reset手册页介绍了--hard标志这样的:

--hard

重置索引和工作树。由于对工作树中跟踪文件的任何更改,<commit>都将被丢弃。

(请谨慎使用!)

是一个很好的介绍git-reset

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何恢复用“ git rm *”删除的文件?

来自分类Dev

恢复用git rm -rf删除的目录

来自分类Dev

如何恢复由git -rm和git commit删除的本地文件?

来自分类Dev

如何删除所有文件第2节“与git rm”?

来自分类Dev

如何删除所有文件第2节“与git rm”?

来自分类Dev

git不使用git rm删除文件

来自分类Dev

如何恢复“ rm”删除的数据?

来自分类Dev

从git rm之后的先前git commit中恢复文件

来自分类Dev

如何从git rm --cached恢复跟踪状态?

来自分类Dev

通过rm -r恢复已删除的文件

来自分类Dev

如何撤消git rm

来自分类Dev

git rm --cached正在从文件系统中删除文件

来自分类Dev

如何恢复克隆期间删除的文件git

来自分类Dev

如何使用rm命令删除多个文件?

来自分类Dev

git rm *不会一次删除所有文件

来自分类Dev

git rm --cached会删除生产文件吗?

来自分类Dev

运行 git rm 时,文件何时从索引中删除?

来自分类Dev

为什么“git rm --cached”删除最新文件?

来自分类Dev

如何git rm一个包含*的文件

来自分类Dev

当执行linux rm命令删除一个打开的文件时,如何恢复磁盘空间?

来自分类Dev

如何恢复已删除的.git / modules文件夹

来自分类Dev

用git rebase后删除的文件,如何恢复?

来自分类Dev

Git存储库如何恢复已删除的文件?

来自分类Dev

git:如何从暂存删除的文件中恢复未提交的更改?

来自分类Dev

如何在git中恢复已删除的文件?

来自分类Dev

Git,即使在其他机器上拉动后,如何使用 git rm --cached 保留文件

来自分类Dev

rm无法删除文件

来自分类Dev

git rm undo对于未添加的文件

来自分类Dev

git rm undo对于未添加的文件

Related 相关文章

热门标签

归档