Coding Planet

[ Git ] 깃허브, git bash 기초 - 처음부터 따라하기3(reset) 본문

etc

[ Git ] 깃허브, git bash 기초 - 처음부터 따라하기3(reset)

jhj.sharon 2023. 5. 21. 23:09
반응형

                             

 

지금까지는 버전을 업데이트하는 법을 배웠다. 이제는 업데이트한 버전을 과거로 되돌리는 방법에 대해 알아보자

 

 

💡버전을 되돌리는 명령어

어디까지? 옵션  
수정한 것 까지 통째로 -- hard HEAD^ -HEAD: 현재 작업중인 브랜치/커밋 중 가장 최근 커밋
- ^ : 하나 되돌려라
add한 것 까지 -- mixed HEAD^
commit 한 것만 --soft HEAD^

 

  • EX) 가장 최근 커밋으로부터 하나 전으로 되돌려라 : $git reset --hard HEAD^
  • EX) 가장 최근 커밋으로부터 두 개 전으로 되돌려라 : $git reset --hard HEAD^^

 

 


🥰[실습하기]

 

1. VS Code에서 git bash로 수정하기

  • 보기 - 터미널 - 새 터미널
  • 터미널 편집기에서 Git Bash 선택하기
  • 파일 수정하고 add / commit 해서  local repository 에 새 버전 올리

 

 

 

  • text.txt 파일에 "This is a repository" 라고 수정해서 commit까지 하기

 

 

  • text.txt 파일 또 수정 -> This is a Staging Area 후 add

 

 

** 현재 Git 상황

 

Working Directory Staging Area Repository
"This is a Staging Area" "This is a Staging Area" "This is a repository"(두번째 커밋)
"This is a new first commit"(첫번째 커밋)

 

 

  • This is a working directory로 수정하기

** 현재 Git 상황 

 

Working Directory Staging Area Repository
"This is a working directory" "This is a Staging Area" "This is a repository"(두번째 커밋)
"This is a new first commit"(첫번째 커밋)

 

 

 

 

2. 되돌리기(rest) 사용해보기

 

1) $ git reset --hard HEAD^

  • 첫번째 commit이었던 "this is a new first commit"으로 돌아갔다.
  • git log로 확인한 결과 두번째 commit은 사라졌다. 

 

Working Directory Staging Area Repository
"This is a Staging Area"
"This is a new first commit"
"This is a Staging Area" "This is a repository"(두번째 커밋)
"This is a new first commit"(첫번째 커밋)

 

 


 

 

2) $ git reset --mixedHEAD^

 

  • 1)에서 되돌리기 전인 아래와 같은 상황이라고 다시 가정하자

 

Working Directory Staging Area Repository
"This is a Staging Area" "This is a Staging Area" "This is a repository"(두번째 커밋)
"This is a new first commit"(첫번째 커밋)

 

 

  • $ git reset --mixed HEAD^  -> mixed가  default  옵션이기 때문에 생략 가능하다.

 

Working Directory Staging Area Repository
"This is a Staging Area" "This is a Staging Area" "This is a repository"(두번째 커밋)
"This is a new first commit"(첫번째 커밋)

 

 

 

3) $ git reset --soft HEAD^

 

  • 2)에서 되돌리기 전인 아래와 같은 상황이라고 다시 가정하자

 

Working Directory Staging Area Repository
"This is a Staging Area" "This is a Staging Area" "This is a repository"(두번째 커밋)
"This is a new first commit"(첫번째 커밋)
  •  $ git reset --soft HEAD^로 인해 두번째 커밋이 사라졌다

 

Working Directory Staging Area Repository
"This is a Staging Area" "This is a Staging Area" "This is a repository"(두번째 커밋)
"This is a new first commit"(첫번째 커밋)

 

 

반응형
Comments