GIT
에서 사용하는 checkout
명령어는 브랜치를 이동할 수 있고, 커밋 ID를 통해서
이전의 커밋 버전으로 되돌아갈 수 있습니다. 이에 대한 명령어를 알아보겠습니다.
Brnach
에서 다른 Brahcn
로 이동Commit
간의 이동, 이동 전의 commit
을 삭제하지 않습니다.git checkout [커밋 ID]
# 커밋 ID에 해당되는 버전으로 이동
git checkout [branch명]
# 해당 브랜치명으로 이동
git checkout -b [new branch명]
# 새로운 브랜치를 생성하면서, 해당 브랜치로 이동
git checkout .
# 이동한 버전에 대한 모든 변경 사항을 취소
# 이동한 버전의 워킹 디렉터리에서 특정 작업을 한 상태를 지워줍니다.
# 워킹 디렉터리에서 변경한 내용은 되돌릴 수 있으나, add나 commit한 부분은 되돌릴 수 없습니다
# checkout으로 돌아간 버전에서 지워버린 내용들은 복구할 수 없습니다.
1. 현재 디렉터리의 파일 버전은 HEAD가 가르키고 있는 commit
입니다. 5d8f41~~
커밋 메세지가 Message 2인 파일 버전으로 되돌아 가보겠습니다.
2. checkout
명령어를 사용해서 Message 2 메세지의 파일 버전으로 되돌아가기
3. Message 2 기록이 남긴 버전으로 되돌아 왔기 떄문에, 저장소의 최신 버전이였던
Message 3에 해당 되는 버전의 로그가 안보이게 되었습니다.
삭제된 것은 아니므로 다시 되돌아갈 수 있습니다.
checkout
명령어를 사용해서 최신 버전으로 되돌려 보겠습니다
1. 커밋으로 이동된 버전에서 파일을 추가 | 삭제 | 수정등을 한 이후에 다시 버전이동을 하면
어떻게 될까요? 변화를 확인하기 위해 이전 버전으로 돌아가서 파일을 수정 해봅시다.
2. 되돌아간 버전에서 파일 수정후 이동되기 이전의 버전으로 되돌아가기
hello.txt파일은 내용을 변경하고, 새로이 test.txt 파일을 생성 해보겠습니다.
3. 오류 해결을 위해 커밋을 새로 하고 되돌아 가기
결과적으로, checkout
을 통해서 수정한 파일에 변경사항이 생기면 새로운 브런치를 만들기
이전까지는 돌아갈 수 없습니다.
수정한 파일이 아니라 새로 생성한 파일은 이전 버전의 파일과 충돌하지 않기 때문에
커밋이나 브런치를 생성하지 않아도 그대로 돌아갑니다.