Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

■ 브랜치 목록 만들기

다음의 명령어로 브랜치 목록을 확인.

Code Block
# git branch --list
# git branch --all, git branch -a

" * " 는 해당 브랜치가 현재 작업중(체크아웃)을 의미함.

remotes/origin 으로 시작되는 것은 remotes는 로컬이 아닌것을 의미하며,

origin은 기본규약의거, 사본이 여기에서 복제된것을 의미함.다음의 명령어는


로컬 브랜치 목록 확인.

Code Block
$ git branch 
iss53 
* master 
testing

원격 브랜치 목록을 확인.

Code Block
# git branch --remotes
origin/develop
origin/master

git branch -v 명령은 브랜치마다 마지막 커밋 메세지도 확인 할 수 있다.

Code Block
$ git branch -v


각 브랜치가 지금 어떤 상태인지 확인.

Checkout한 브랜치를 기준으로 Merge된 브랜치인지 그렇지 않은지 필터링.

--merged 와 --no-merged 옵션을 사용하여 해당 목록을 확인.

git branch --merged 명령으로 이미 Merge한 브랜치 목록을 확인한다:

Code Block
$ git branch --merged 
iss53 
* master

반대로 현재 Checkout한 브랜치에 Merge하지 않은 브랜치를 살펴보려면

Code Block
$ git branch --no-merged testing

위에는 없었던 다른 브랜치가 보인다.

아직 Merge하지 않은 커밋을 담고 있기 때문에 git branch -d 명령으로 삭제되지 않는다.

■ remote 브랜치 목록 업데이트

remote 브랜치 목록은 자동으로 갱신 되지 않는다.

목록을 업데이트 하기 위해서는 fetch 명령어를 사용한다.

Code Block
# git fetch
remote: Counting objects: 27, done.
remote: Compressing objects: 100% (20/20), done.
...

■ checkout 

checkout 명령어를 사용하여 브랜치 변환.

Code Block
# git checkout --track origin/master
# git checkout --track -b newmaster origin/master

checkout -b 는 remote origin에 저장된 master 브랜치로부터 master라는 이름의 새로운 브랜치를 생성함.

즉, origin/master브랜치로 부터 newmaster라는 새로운 로컬 브랜치를 생성함.

■ 브랜치 생성 

먼저 master 소스에서 분기하여야 하며 분기대상 브랜치를 체크아웃 한다.

Code Block
# git checkout master
# git branch newBranchName
# git checkout newBranchName


master 브랜치에서 새로운 개발 브랜치 생성.

Code Block
# git checkout -b newBranchName master

-b는 브랜치를 만들어서 checkout까지 한번에 명령을 실행하는 옵션.

■ 브랜치 삭제

기본적으로 origin master 로 병합이 되면 

로컬 또는 티켓 브랜치를 가지고있을 이유가 없다.

깔끔한 정리를 위하여 삭제.

Code Block
# git branch --delete {branchName}

병합이 안된 브랜치를 삭제하려고하면 강력한 경고가 노출된다.


원격 브랜치 삭제는 다음과 같다.

Code Block
# git push --delete origin {branchName}

병합하지 않는 브랜치를 강제 삭제.

Code Block
$ git branch -D testing