Develop/Git

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

독서왕뼝아리 2023. 2. 9. 00:35

브랜치란?

브랜치란 독립적으로 어떤 작업을 진행하기 위한 개념이다. 필요에 의해 만들어지는 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있다. 또한 이렇게 만들어진 브랜치는 다른 브랜치와 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 옵션을 입력하면 해당 브랜치를 삭제할 수 있다.