IT용어위키


Git checkout

‘git checkout’는 Git 저장소 내에서 브랜치(branch), 커밋(commit), 파일 상태(file state)를 전환하거나 복원하는 명령어이다.

개요

git checkout 명령어는 현재 작업 디렉터리(working tree)와 HEAD가 가리키는 브랜치를 업데이트하여, 사용자가 지정한 브랜치나 커밋의 스냅샷(snapshot)으로 전환한다. [1] 이 명령어로 다음과 같은 작업이 가능하다.

  • 이미 존재하는 로컬 브랜치로 전환
  • 새로운 브랜치 생성 후 전환
  • 원격(remote) 브랜치로부터 로컬 브랜치를 생성하고 전환
  • 특정 커밋이나 태그(tag) 상태로 작업 디렉터리를 변경하여 과거 상태 검토
  • 특정 파일만 지정한 브랜치/커밋 상태로 되돌리기

주요 사용법

브랜치 전환

로컬에 존재하는 브랜치로 전환할 때는 다음과 같이 사용한다.

git checkout <브랜치명>

예:

git checkout main

이렇게 하면 현재 HEAD가 <브랜치명>이 가리키는 커밋으로 바뀌고, 작업 디렉터리의 파일들도 그 브랜치의 최신 상태로 업데이트된다.

새 브랜치 생성 + 전환

브랜치를 새로 만들면서 동시에 전환하고자 할 때는 -b 옵션을 사용한다.

git checkout -b <새브랜치명>

이 명령은 git branch <새브랜치명>git checkout <새브랜치명>을 한 번에 실행하는 것과 동일하다.

원격 브랜치 체크아웃

로컬에 해당 브랜치가 없는 원격 저장소의 브랜치를 체크아웃하려면 아래와 같이 한다.

git fetch origin
git checkout -b <로컬브랜치명> origin/<원격브랜치명>

또는 Git 버전에 따라

git checkout <원격브랜치명>

만으로 로컬 브랜치가 자동 생성되기도 한다.

커밋 또는 태그 체크아웃(Detached HEAD 상태)

브랜치가 아닌 특정 커밋이나 태그를 체크아웃하면 HEAD가 브랜치를 가리키지 않고 직접 커밋을 가리키게 되며, 흔히 detached HEAD 상태라고 한다.

git checkout <커밋해시>
git checkout <태그명>

이 상태에서는 새로운 커밋을 만들더라도 브랜치가 아니라 단순히 HEAD가 따라가게 되며, 브랜치를 생성하지 않으면 나중에 참조가 사라질 수 있다.

파일만 특정 상태로 되돌리기

작업 디렉터리 내 특정 파일만 지정한 브랜치 또는 커밋 상태로 되돌리고 싶을 경우 다음과 같이 한다.

git checkout <브랜치명> -- <파일경로>

예:

git checkout main -- src/app.js

이렇게 하면 src/app.js 파일만 main 브랜치 최신 커밋 상태로 되돌려지고, 나머지 파일들은 그대로 유지된다.

주의사항

  • 작업 디렉터리에 커밋되지 않은 변경 사항이 있을 경우, 브랜치를 전환하거나 커밋을 체크아웃하면 충돌(conflict)이 발생할 수 있다.
  • 최신 Git 버전에서는 git switch, git restore 명령이 각각 브랜치 전환 및 파일 복원 용도로 권장된다.
  • 원격 브랜치를 체크아웃하기 전에 git fetch를 통해 최신 정보를 받아야 한다.

같이 보기

참고 문헌

각주


  출처: IT위키 (IT위키에서 최신 문서 보기)

  * 본 페이지는 IT Wiki에서 미러링된 페이지입니다. 일부 오류나 표현의 누락이 있을 수 있습니다. 원본 문서는 IT Wiki에서 확인하세요!