아미(아름다운미소)

Git: checkout 명령어 정리 본문

랭귀지/Git

Git: checkout 명령어 정리

유키공 2018. 7. 7. 12:24

checkout

브랜치 이동

다른 브랜치의 마지막 커밋(가장 최근 커밋)으로 헤드만 이동한다. 이 말은 깃 디렉토리만 다른 커밋의 스냅샷으로 변경된다는 뜻이다. 워킹 트리(working tree, 실제 작업공간)와 스테이징 에어리어(staging area, 인덱스)는 그대로 유지됩니다.

git checkout master
# 만약 master라는 브랜치가 로컬에 존재하지 않으면 리모트 저장소의 데이터를 체크아웃한다.

다른 커밋으로 헤드 이동

특정 커밋의 체크섬이나 태그를 입력해 해당 시점의 스냅샷으로 이동하는 것을 의미한다. 브랜치를 만들지 않고 헤드를 이동할 수 있습니다.

체크아웃으로 과거의 이력에 해당하는 커밋으로 이동했을 때, 깃은 이를 '분리된 헤드(detached HEAD)' 상태에 있다고 하며 이 상태에서 바로 작업하는 것보다 브랜치를 생성하여 작업할 것을 권장하고 있습니다.

git checkout 체크섬

git checkout 태그

git checkout 6f9021d4a03586a787ebcef2f94dd2eca1aec941
git checkout v0.3.1.5

브랜치를 새로 만들면서 체크아웃

git checkout -b 브랜치

파일 변경 사항 되돌리기

워킹 트리와 스테이징 에어리어를 깃 디렉토리의 내용대로 되돌린다. 이미 추적중인 대상만 되돌릴 수 있다. status에 표시되는 기준으로 modified, renamed, deleted는 되돌리지만 new file은 되돌리지 않습니다.

git checkout -- .  # 현재 경로의 모든 파일 되돌리기
git checkout HEAD .  # 현재 경로의 모든 파일 되돌리기

fetch 시점으로 헤드 이동

fetch로 리모트 저장소의 데이터를 받아왔을때 "FETCH_HEAD"라는 포인터가 생성된다. 해당 포인터의 스냅샷을 확인 후 원하는 브랜치로 이동해 머지합니다.

git checkout FETCH_HEAD

git checkout 리모트저장소/리모트브랜치

fetch로 받아온 데이터를 머지하지 않고 새 브랜치로 생성

git checkout -b FETCH_HEAD

git checkout -b 생성할브랜치 리모트저장소/리모트브랜치

git checkout -b hotFix anotherServer/master  # 이 명령은 지정한 원격 저장소의 브랜치를 업스트림 브랜치로 만듭니다.

업스트림(upstream) 브랜치 설정 #1

깃이 리모트 저장소의 특정 브랜치를 추적하도록 설정하는 방법이다. 추적 중인 브랜치를 업스트림 브랜치라고 하는데, 업스트림 브랜치가 설정되어 있으면 pull이나 push 사용 시 리모트의 저장소명과 브랜치명을 생략할 수 있습니다.

git checkout -b 로컬브랜치 리모트저장소/리모트브랜치

git checkout --track 리모트저장소/리모트브랜치 # 1.6.2 이상

git checkout --track origin/serverfix

Branch serverfix set up to track remote branch refs/remotes/origin/serverfix.
Switched to a new branch 'serverfix'

태그로 체크아웃

태그(정확히는 태그가 가리키는 커밋) 기반의 브랜치를 생성하고 동시에 체크아웃까지 하는 방법입니다.

git checkout -b version2 v2.0.0  # v2.0.0 기반 브랜치 version2로 체크아웃


'랭귀지 > Git' 카테고리의 다른 글

Git: clean 명령어 정리  (0) 2018.07.09
Git: cherry-pick 명령어 정리  (0) 2018.07.08
Git: branch 명령어 정리  (0) 2018.07.05
Git: add 명령어 정리  (0) 2018.07.04
Git PUSH/PULL 명령어  (0) 2018.07.01
Comments