GitNotes.14-1.md
본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

Section 14.1: 새로운 브랜치를 만들고 checkout 하기

현재 브랜치에서 이동하지 않으면서 새로운 브랜치를 만들고 싶다면, 아래 명령어를 이용한다:

git branch <name>

일반적으로, 브랜치 이름은 공백을 포함하여서는 안되며 이 장에서 소개되는 각종 명세사항 (specification) 을 따라야 한다. 현재 존재하고 있는 브랜치로 전환하고자 하면 아래와 같이 입력한다:

git checkout <name>

새로운 브랜치를 생성하고 바로 해당 브랜치로 전환하려면:

git checkout -b <name>

현재 브랜치의 가장 마지막 커밋 (HEAD 라고도 알려져 있는) 가 아닌 특정 커밋을 시작점으로 하는 브랜치를 생성하로 싶다면, 아래 명령어 중 하나를 이용한다:

git branch <name> [<start-point>] git checkout -b <name> [<start-point>]

로 표시된 부분은 git 내에 존재하는 어떠한 revision 도 될 수 있다 (예: 특정 브랜치 이름, SHA 커밋 해시값, 혹은 HEAD 나 tag 이름과 같은 symbolic reference):

git checkout -b <name> some_other_branch git checkout -b <name> af295 git checkout -b <name> HEAD~5 git checkout -b <name> v1.0.5

원격 브랜치로부터 로컬 브랜치를 생성하려면 (<remote_name> 의 기본값은 'origin' 이다):

git branch <name> <remote_name>/<branch_name> git checkout -b <name> <remote_name>/<branch_name>

만약 해당 브랜치 이름이 원격에만 존재하고 로컬에는 아직 존재하지 않는다면, 아래와 같이 간단하게 입력할 수도 있다.

git checkout -b <branch_name>

위 명령어는 아래 명령어와 동일한 효과를 갖는다.

git checkout -b <branch_name> <remote_name>/<branch_name>

가끔씩은, 최근 몇가지의 커밋들을 새로운 브랜치로 이동시킬 필요가 있을 수 있다. 이는 현재 브랜치에서의 브랜치 생성 후 "되돌리기"(rolling back) 를 통해 달성할 수 있다:

git branch <new_name> git reset --hard HEAD~2 # Go back 2 commits, you will lose uncommitted work. git checkout <new_name>

위 명령어의 실행 과정을 도식화하면 아래와 같다:

초기 상태: A-B-C-D-E (HEAD) ↑ master `git branch <new_name>` 실행 직후: newBranch ↓ A-B-C-D-E (HEAD) ↑ master `git reset --hard HEAD~2` 실행 직후: newBranch ↓ A-B-C-D-E (HEAD) ↑ master

[출처] https://books.goalkicker.com/GitBook/ (CC BY-SA)

반응형

+ Recent posts