Post

Git 브랜치 전환

1. 브랜치 전환

Git에서는 항상 작업할 브랜치를 미리 선택해야 한다. 처음에 Git을 설치하게 되면 ‘master’ 브랜치가 선택되어 있다. 현재 선택된 브랜치가 아닌 다른 브랜치에서 작업하고 싶을 때는, ‘체크아웃(checkout)’ 명령어를 실행하여 원하는 브랜치로 전환할 수 있다.

체크아웃을 실행하면, 우선 브랜치 안에 있는 마지막 커밋 내용이 작업 트리에 펼쳐진다. 브랜치가 전환 되었으므로 이후에 실행한 커밋은 전환한 브랜치에 추가된다.

switch-branch

2. HEAD

‘HEAD’ 란 현재 사용 중인 브랜치의 선두 부분을 나타내는 이름이다. 기본적으로는 ‘master’의 선두 부분을 나타낸다. ‘HEAD’ 를 이동하면, 사용하는 브랜치가 변경된다.

커밋을 지정할 때, ~(틸드, 물결기호)와 ^(캐럿, 삽입기호)을 사용하여 현재 커밋으로부터 특정 커밋의 위치를 가리킬 수 있다. 이때 자주 사용하는 것이 ‘HEAD’ 로서, ~(틸드)와 숫자를 ‘HEAD’ 뒤에 붙여 몇 세대 앞의 커밋을 가리킬 수 있다. ^(캐럿)은, 브랜치 병합에서 원본이 여럿 있는 경우 몇 번째 원본인지를 지정할 수 있다.

head

3. stash

커밋하지 않은 변경 내용이나 새롭게 추가한 파일이 인덱스와 작업 트리에 남아 있는 채로 다른 브랜치로 전환(checkout)하면, 그 변경 내용은 기존 브랜치가 아닌 전환된 브랜치에서 커밋할 수 있다.

단, 커밋 가능한 변경 내용 중에 전환된 브랜치에서도 한 차례 변경이 되어 있는 경우에는 체크아웃에 실패할 수 있다. 이 경우 이전 브랜치에서 커밋하지 않은 변경 내용을 커밋하거나, stash를 이용해 일시적으로 변경 내용을 다른 곳에 저장하여 충돌을 피하게 한 뒤 체크아웃을 해야 한다.

stash란, 파일의 변경 내용을 일시적으로 기록해두는 영역이다. stash를 사용하여 작업 트리와 인덱스 내에서 아직 커밋하지 않은 변경을 일시적으로 저장해 둘 수 있다. 이 stash에 저장된 변경 내용은 나중에 다시 불러와 원래의 브랜치나 다른 브랜치에 커밋할 수 있다.

stash

[출처 및 참고]

This post is licensed under CC BY 4.0 by the author.