[Git]깃 버전 이동하기 - git checkout
※ VS Code의 확장 기능 중 GIT GRAPH를 이용하는 내용이 있으니 아래 포스팅을 먼저 참조하면 좋습니다.
[Git]깃 사용법 - Visual Studio에서 git으로 버전 관리하기(2) (# git graph)
[Git]깃 사용법 - Visual Studio에서 git으로 버전 관리하기 ※ Git과 Visual Studio Code(VS Code)가 설치되었다는 가정하에 진행하니 아직 설치하지 않은 분들은 아래 포스팅을 참고하여 설치부터 하길 바란
hyemco.tistory.com
이번에는 이미 만들어 둔 여러 버전 중 원하는 버전으로 이동하는 법에 대해 알아보고자 한다.
git을 사용하는 이유 중 하나가 버전 관리인데 만약 버전100까지 만들어 둔 상황에서 버그를 발견하여 버전81의 상태로 돌리고 싶은 경우에 사용된다.
※ 왼쪽(혹은 위 쪽) 사진은 git log 오른쪽(혹은 아래 쪽) 사진은 GIT GRAPH를 이용한 것이니 참고 바란다.
1. 과거로 돌아가기
현재 3개의 버전이 있다.


(참고로 GIT GRAPH에서 HEAD는 노란 네모 박스 안의 파란 원으로 HEAD → master는 master 주위의 파란 테두리로 확인할 수 있다.)
※ HEAD, master의 의미를 모른다면 아래 포스팅을 확인하세요.
[Git]깃 버전관리 - HEAD, master
[Git]깃 사용법 - Visual Studio에서 git으로 버전 관리하기 ※ Git과 Visual Studio Code(VS Code)가 설치되었다는 가정하에 진행하니 아직 설치하지 않은 분들은 아래 포스팅을 참고하여 설치부터 하길 바란
hyemco.tistory.com
이 때, 버전2로 돌아가 수정을 하고 싶다고 가정하자.여기서 버전2로 돌아간다는 것은 버전2가 만들어졌던 시점의 Staging Area로 Working Directory가 변경된다는 뜻이다.
상단 탭 Terminal - New Terminal에서 git checkout commid ID 를 입력한다.GIT GRAPH에서는 버전2 위에서 우클릭한 후 checkout 버튼을 누른다.


그러면 버전2로 HEAD가 이동한 것을 볼 수 있다 (워킹 디렉토리도 변경된다.)
GIT GRAPH도 HEAD가 master를 가리키지 않아 master의 파란 테두리가 사라진 것을 볼 수 있다.


+
이 때, cmd상에는 버전3에서 작업한 것은 나타나지 않게 되는데 이는 "git log"가 HEAD가 가리키는 버전 + 그 버전의 Parent 버전들 만을 보여주기 때문이다.
모든 버전을 다 확인하고 싶다면 아래 명령어를 입력하면 된다.
git log --all
git log -- all --oneline (한줄로 확인)

2. 현재로 돌아가기
이동한 버전에서 수정을 다 마쳤다면 최신 버전(버전3)에도 반영하기위해 현재(=최신 버전)로 돌아와야 될 것이다.
현재로 돌아오는 방법도 동일하다. git checkout master를 입력하거나 master 박스 안에서 우클릭 - CheckOut Branch를 누른다.


+
여기서 주의할 점은 GIT GRAPH에서 git checkout master를 할 때 master 박스를 벗어나 우클릭해 Checkout하지 않도록 하는 것이다

git log와 GIT GRAPH를 확인해보면 HEAD가 master를 가리키는 것으로 최신 버전으로 돌아온 것을 알 수 있다. (GIT GRAPH는 master 주위에 파란색 테두리가 생긴 것으로 알 수 있다.)


요약
과거(=이전 버전)로 돌아가기 git checkout commit ID
현재(=최신 버전)로 돌아가기 git checkout master
모든 버전 다보기 git log --all
모든 버전 한줄로 보기 git log --all --oneline
※생활코딩 Visual Studio Code 로 다루는 Git - 버전관리편을 참고하여 만들었습니다.