728x90
반응형
질문 : git reset --hard HEAD ~ 1을 어떻게 실행 취소 할 수 있습니까?
다음 명령으로 인한 변경 사항을 취소 할 수 있습니까? 그렇다면 어떻게?
git reset --hard HEAD~1
답변
Pat Notz가 맞습니다. 며칠 이내에 커밋을 되돌릴 수 있습니다. git은 새로운 blob을 제거하도록 명시 적으로 지시하지 않는 한 약 한 달 정도 후에 만 가비지 수집을 수행합니다.
$ git init
Initialized empty Git repository in .git/
$ echo "testing reset" > file1
$ git add file1
$ git commit -m 'added file1'
Created initial commit 1a75c1d: added file1
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 file1
$ echo "added new file" > file2
$ git add file2
$ git commit -m 'added file2'
Created commit f6e5064: added file2
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 file2
$ git reset --hard HEAD^
HEAD is now at 1a75c1d... added file1
$ cat file2
cat: file2: No such file or directory
$ git reflog
1a75c1d... HEAD@{0}: reset --hard HEAD^: updating HEAD
f6e5064... HEAD@{1}: commit: added file2
$ git reset --hard f6e5064
HEAD is now at f6e5064... added file2
$ cat file2
added new file
예제에서 하드 리셋의 결과로 file2가 제거되었지만 reflog를 통해 리셋 할 때 제자리에 다시 놓인 것을 볼 수 있습니다.
출처 : https://stackoverflow.com/questions/5473/how-can-i-undo-git-reset-hard-head1
728x90
반응형
'개발관련 > Git' 카테고리의 다른 글
Git 커밋 범위에서 이중 점 “..”과 삼중점 “…”의 차이점 (0) | 2021.11.18 |
---|---|
Git을 사용하여 원격 저장소에 태그를 푸시하는 방법 (0) | 2021.11.17 |
.gitignore 파일에 주석을 사용하는 방법 (0) | 2021.11.17 |
Git은 원격 분기 목록을 고치는 시기 (0) | 2021.11.17 |
기존 Git 분기가 원격 분기를 추적하도록 하는 방법 (0) | 2021.11.17 |