실수로 .NET을 사용하여 로컬 저장소에서 첫 번째 커밋 후 모든 파일을 삭제했습니다 git rm *
.
힘내 커밋
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
SHA 9b72b0c
및 message 가 있음을 나타냅니다 first commit
.
를 실행 한 후에 로컬 변경을하지 않았으므로 커밋을 수행 git rm *
한 직후 저장소 상태로 돌아 가기 IF ELSE
만하면됩니다.
다행히도 해당 커밋의 짧은 SHA 기록이 fc9895a
있습니다.. 따라서,
git reset --hard fc9895a
당신을 문제에서 벗어날 수있는 명령입니다.
git-reset
현재 분기 ( master
, 여기)를 지정된 상태 ( fc9895a
, 여기) 로 재설정하는 데 사용됩니다 .
그리고 git-reset
man 페이지 는 다음과 같이 --hard
플래그를 설명합니다 .
--hard
색인 및 작업 트리를 재설정합니다. 이후 작업 트리에서 추적 된 파일의 모든 변경 사항
<commit>
은 무시됩니다.
(주의해서 사용하십시오!)
다음 은 git-reset
작동 방식에 대한 좋은 소개 입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다