■ 브랜치 목록 만들기
다음의 명령어로 브랜치 목록을 확인.
# git branch --list # git branch --all, git branch -a
" * " 는 해당 브랜치가 현재 작업중(체크아웃)을 의미함.
remotes/origin 으로 시작되는 것은 remotes는 로컬이 아닌것을 의미하며,
origin은 기본규약의거, 사본이 여기에서 복제된것을 의미함.
로컬 브랜치 목록 확인.
$ git branch iss53 * master testing
원격 브랜치 목록을 확인.
# git branch --remotes origin/develop origin/master
git branch -v 명령은 브랜치마다 마지막 커밋 메세지도 확인 할 수 있다.
$ git branch -v
각 브랜치가 지금 어떤 상태인지 확인.
Checkout한 브랜치를 기준으로 Merge된 브랜치인지 그렇지 않은지 필터링.
--merged 와 --no-merged 옵션을 사용하여 해당 목록을 확인.
git branch --merged 명령으로 이미 Merge한 브랜치 목록을 확인한다:
$ git branch --merged iss53 * master
반대로 현재 Checkout한 브랜치에 Merge하지 않은 브랜치를 살펴보려면
$ git branch --no-merged testing
위에는 없었던 다른 브랜치가 보인다.
아직 Merge하지 않은 커밋을 담고 있기 때문에 git branch -d 명령으로 삭제되지 않는다.
■ remote 브랜치 목록 업데이트
remote 브랜치 목록은 자동으로 갱신 되지 않는다.
목록을 업데이트 하기 위해서는 fetch 명령어를 사용한다.
# git fetch remote: Counting objects: 27, done. remote: Compressing objects: 100% (20/20), done. ...
■ checkout
checkout 명령어를 사용하여 브랜치 변환.
# git checkout --track origin/master # git checkout --track -b newmaster origin/master
checkout -b 는 remote origin에 저장된 master 브랜치로부터 master라는 이름의 새로운 브랜치를 생성함.
즉, origin/master브랜치로 부터 newmaster라는 새로운 로컬 브랜치를 생성함.
■ 브랜치 생성
먼저 master 소스에서 분기하여야 하며 분기대상 브랜치를 체크아웃 한다.
# git checkout master # git branch newBranchName # git checkout newBranchName
master 브랜치에서 새로운 개발 브랜치 생성.
# git checkout -b newBranchName master
-b는 브랜치를 만들어서 checkout까지 한번에 명령을 실행하는 옵션.
■ 브랜치 삭제
기본적으로 origin master 로 병합이 되면
로컬 또는 티켓 브랜치를 가지고있을 이유가 없다.
깔끔한 정리를 위하여 삭제.
# git branch --delete {branchName}
병합이 안된 브랜치를 삭제하려고하면 강력한 경고가 노출된다.
원격 브랜치 삭제는 다음과 같다.
# git push --delete origin {branchName}
병합하지 않는 브랜치를 강제 삭제.
$ git branch -D testing