Problem
Git을 사용해 협업 개발을 하다보면 branch를 생성, 병합, 저장할 일이 많다.
하지만 branch의 개수가 많아지다보면 원격 브랜치(remote branch)와 로컬 브랜치(local branch)를 관리하기가 점점 더 까다로워진다.
이번 포스트에서는 원격 브랜치와 로컬 브랜치를 생성, 병합, 삭제하는 명령어를 정리해본다.
Branch 확인
로컬 브랜치 리스트 확인
$ git branch
리모트 브랜치 리스트 확인
$ git branch -r
로컬과 리모트 브랜치 리스트를 모두 확인
$ git branch -a
Branch 생성
로컬 브랜치 생성
“new-branch” 브랜치를 생성해보자.
# git checkout -b [생성할 브랜치 이름]
$ git checkout -b new-branch
원격 저장소(repository)의 특정 브랜치(remote branch)를 가져와 로컬 브랜치 생성
원격 저장소의 “feat/menu1”이란 원격 브랜치를 로컬 브랜치로 가져와보자. 원격 브랜치를 표시해주기위해 브랜치 명 앞에 “origin”이 붙는다.
# git checkout -t [원격 브랜치 이름]
$ git checkout -t origin/feat/menu1
만약, 로컬 브랜치 명을 바꾸고 싶다면 다음과 같이 입력한다.
# git checkout -t [생설할 브랜치 이름] [원격 브랜치 이름]
$ git checkout -t new-branch origin/feat/menu1
Branch 이동
로컬 브랜치인 “new-branch”로 이동해보자.
$ git checkout new-branch
Branch 병합
브랜치의 커밋 이력을 하나로 합쳐서 병합
현재 내가 “develop” 브랜치에 checkout 했다고 가정해보자.
만약 “new-branch”라는 브랜치에 개발이 완료되어, “develop” 브랜치에 병합하고 싶은데, “new-branch”의 무수히 많은 커밋 이력들을 하나로 합쳐서 “develop” 브랜치에 병합하고 싶다.
그럴땐 다음과 같이 입력한다.
$ git merge --no-ff new-branch
Branch 삭제
로컬 브랜치 삭제
“new-branch” 브랜치를 삭제하자.
$ git branch -d new-branch
원격 브랜치 삭제
방법1
원격 저장소의 원격 브랜치인 “new-branch”를 삭제하자.
$ git push origin --delete new-branch
방법2
만약 로컬 브랜치인 “new-branch”를 먼저 삭제한 상태라면, push만 해주어도 원격 저장소가 삭제된다.
$ git branch -d new-branch # 로컬 브랜치 삭제
$ git push origin new-branch # 원격 브랜치 삭제
Branch 이름 변경
로컬 브랜치 이름 변경
로컬 브랜치의 이름을 변경하고 싶을 땐 m
옵션을 사용한다.
$ git branch -m old-branch-name new-branch-name
원격 브랜치 이름 변경
먼저 로컬 브랜치의 이름을 변경한 후 기존 원격 브랜치를 삭제하고 새로운 브랜치를 push하면 된다.
# 기존 원격 브랜치 삭제
$ git push origin :old-branch-name
# 새로운 브랜치를 push (-u 옵션은 upstream 설정으로, --set-upstream 옵션과 동일하다)
$ git push -u origin new-branch-name