본문 바로가기
Develop/Git

[Git] 브랜치 만들기와 전환하기 (branch, checkout)

by 독서왕뼝아리 2023. 2. 9.

브랜치란?

브랜치란 독립적으로 어떤 작업을 진행하기 위한 개념이다. 필요에 의해 만들어지는 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있다. 또한 이렇게 만들어진 브랜치는 다른 브랜치와 Merge/Rebase를 통해 새로운 하나의 브랜치로 모을 수 있다.

현재 선택된 브랜치가 아닌 다른 브랜치에서 작업하고 싶을 때는 'checkout' 명령어를 실행하여 다른 브랜치로 전활할 수 있다. 'HEAD'라는 키워드를 사용해 현재 사용 중인 브랜치의 선두 부분을 나타낸다.

커밋하지 않은 변경 내용이 인덱스와 작업 트리에 남아 있는 채로 다른 브랜치로 전환하면, 그 변경 내용은 기존 브랜치가 아니 전환된 브랜치에서 커밋할 수 있다. 단 전환된 브랜치에서도 한 차례 변경 되어 있는 경우에는 체크아웃에 실패할 수 있다. 이 경우 이전 브랜치에서 커밋하지 않은 내용을 커밋하거나, stash를 이용해 일시적으로 변경 내용을 다른 곳에 저장하여 충돌을 피하게 한 뒤 체크아웃을 해야 한다.

브랜치 생성

브랜치는 branch라는 명령어로 만들 수 있다.

git branch [branch name]

[branch name] 에 해당하는 브랜치가 만들어진다.

$ git branch
* main
  hotfix
  feature

생성되어 있는 브랜치 목록 전체를 확인 할 수 있다. '*'이 붙어 있는 것이 현재 선택된 브랜치이다.

$ git branch -r
  origin/main

원격 저장소의 브랜치 정보를 보여준다.

$ git branch -a
* main
  remotes/origin/main

로컬/원격 저장소의 모든 branch 정보를 보여준다.


브랜치 전환

git checkout [branch name]

브랜치 전환하기 위해서는 checkout 명령어를 사용한다.

error: pathspec 'asdf' did not match any file(s) known to git

존재하지 않는 브랜치의 경우 위와 같은 에러 문구가 뜬다.

git checkout -b [branch name]

-b 옵션을 사용하면 브랜치 생성과 체크아웃을 동시에 실행한다.


브랜치 삭제

git branch -d [branch name]

-d 옵션을 입력하면 해당 브랜치를 삭제할 수 있다.