Page History
■ 브랜치 목록 만들기
다음의 명령어로 브랜치 목록을 확인.
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 |
■ 리모트 브랜치 삭제
git push [remotename] :[branch] 라고 실행해서 삭제할 수 있다.
Code Block |
---|
$ git push origin :serverfix To git@github.com:schacon/simplegit.git |
리모트의 브랜치는 삭제된다.
git push [remotename] [localbranch]:[remotebranch] 형식으로 기억.
[localbranch] 부분에 비워 둔 채로 실행하면 '로컬에서 빈 내용을 리모트의 [remotebranch] 에 채워 넣어라' 라는 뜻.