意外地,我在使用本地回购提交第一次提交后删除了所有文件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上还原文件。有没有一种方法可以还原文件?
根据您对问题的描述,在遇到麻烦之前,您的仓库的历史记录必须包含两次提交:
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] 删除。
我来说两句