git checkout으로 이전 커밋으로 돌아갈 수 있습니다.
git checkout <commit-hash>
git log
를 실행하여 커밋 이력들을 확인할 수 있고 또한 커밋 해시까지 확인할 수 있습니다.
커밋해시는 앞의 7자리만 복사해서 사용할 수도 있습니다.
git log --oneline
으로 짧게 커밋 이력 확인도 가능합니다.
git checkout HEAD~1
이렇게 HEAD와 물결표, 숫자를 이용하여
HEAD의 이전 커밋, 두 번째 이전 커밋, 세 번째 이전 커밋... 등
HEAD를 기준으로 커밋을 참조하여 이동할 수 있습니다.
이렇게 이전 커밋으로 돌아가면 detached HEAD 상태라는 경고 문구? 가 출력됩니다.
이전 포스팅에서 HEAD와 브랜치에 대해 설명한 적이 있습니다.
브랜치는 현재 브랜치에서 가장 마지막 커밋을 가리키는 포인터고,
HEAD는 브랜치를 가리킨다고 했습니다.
예를 들어 master 브랜치에서 추가적으로 커밋이 발생하면
브랜치는 새로 추가된 커밋을 가리키고 HEAD는 여전히 master 브랜치를 가리킵니다.
하지만 여기서 이전 커밋으로 돌아간다면
HEAD가 master 브랜치를 가리키는 것이 아닌 우리가 돌아가고 싶던 커밋을 가리키게 됩니다.
즉, 이 상태는 HEAD는 내가 바라보는 커밋을 가리키게 되는 것입니다.
이를 detached HEAD 상태라고 말합니다.
git switch <branch-name>
현재 브랜치로 이동하게 되면 HEAD는 다시 원래상태로 돌아와 브랜치를 가리키게 됩니다.
혹은
git switch -
위 명령어를 실행하면 가장 최근에 있던 브랜치로 이동할 수 있습니다.
특정 커밋으로 돌아가서 할 수 있는 일이 있습니다.
이 커밋을 기준으로 새로운 브랜치를 만들어 작업 영역을 분기할 수 있습니다.
5개의 커밋이 있는 master 브랜치가 있다고 가정해봅시다.
여기서 2번 커밋으로 돌아가서 새로운 브랜치인 new-version
이라는 브랜치를 만들 수 있습니다.
🙏🙏🙏
git 시리즈에 작성한 포스팅은
https://www.udemy.com/course/best-git-github/
유데미 강좌
https://www.yes24.com/Product/Goods/110795446
모두의 깃 & 깃허브
위 내용을 참고하였으며, 제 실습화면을 캡쳐한 사진 외의
대부분의 사진들은 인터넷 강좌에서 제공하는 자료를 캡쳐하였습니다.
깃 시리즈 포스팅의 내용 및 사진을 절대로 상업적 목적으로 무단 복사하지 말아주세요.