직전 포스팅 서두에 '잡다한 정보'를 알려준다고 해놓고는,
branch에서 가장 중요하다고 할 수 있는 conflict 이야기를 해버렸다. ㅋㅋ
이번에는 정말 branch에 대한 정말 잡스러운 이것 저것들에 대해서 포스팅하기로 하겠다.
이번 포스팅으로 branch 이야기를 마무리 지으려고 하는데... 안되면 한 두번 더 하지 뭐~ ^^
1. git branch & checkout
- hotfix/patch branch 만들고 'hotfix branch'로 checkout을 하자.
$ git branch patch
$ git checkout hotfix
2. git branch -v
- 각 branch 別 마지막 commit을 확인하고 싶으면 [ -v ] 옵션을 사용하면 된다.
3. commit in hotfix branch
- 'hotfix branch'에서 파일 하나를 수정하고 commit 해보자.
$ git commit -a -m "modify readme.txt in hotfix br"
$ git checkout patch
$ nano ./readme.txt
$ git commit -a -m "modify readme.txt in patch br"
4. commit in master branch
- 'master branch'에서 commit을 하나 해보자.
$ nano ./readme.txt
$ git commit -a -m "modify readme.txt in master br"
5. merge
- 이번에는 드디어 merge 작업을 해보자.
$ git mergetool
$ rm -rf ./readme.txt.orig
$ git commit -m "merge between master and hotfix"
- merge를 하게 되면 'hotfix branch'에 있던 commit이 'master branch'에 합쳐진다.
- 위 그림과 위 스크린샷을 잘 살펴보기 바란다.
6. git branch --merged / --no-merged
- branch와 관련한 잡스런(?) 정보를 보여주는 옵션들이 있다.
- [ git branch --merged ] merge가 이루어진 branch 목록을 보여준다.
- [ git branch --no-merged ] merge가 행해지지 않은 branch 목록을 보여준다.
- 어떤 branch를 만들어서 commit이 한 번 이상 이루어졌을 경우,
별도의 merge를 하지 않으면 위 스크린샷과 같이 그냥 삭제가 이루어지지 않는다.
- 강제로 지우고 싶으면 [ -D ] 옵션을 사용하라고 알려주고 있다.
- 5번 항목의 그림을 보면 알겠지만, 'patch branch'를 삭제하게 되면,
"3a45533" commit은 붕~뜨게 된다. 그러기에 그냥 삭제하라고 하면 경고를 하게 되는 것이다.
- 5번 항목의 그림을 다시 한 번 보게되면, "hotfix branch"의 경우,
기존에 가지고 있던 "7770966" commit은 "master branch"의 흐름에 같이 섞여버렸다.
여기까지해서 Local 에서의 branch 에 대해서는 대강 다 살펴본 것 같다.
앞으로는 이러한 Git 에서의 branch 특성을 이용한 Work Flow에 대해서 간단히 알아보고,
그 다음에는 Remote Repository 를 사용하는 환경에서의 branch에 대해서 알아보도록 하겠다.
오늘은 여기까지.... (우와~ 오늘은 자정 안넘겼다~~~!!! 금일 칼퇴근의 힘~!!!)
'SCM > Git-GitHub' 카테고리의 다른 글
Git Branch (브랜치) - Remote Ⅱ (Pull) (0) | 2012.04.30 |
---|---|
Git Branch (브랜치) - Remote Ⅰ (Fetch) (0) | 2012.04.30 |
Git Branch (브랜치) - Local Ⅳ (Conflict) (0) | 2012.04.24 |
Git Branch (브랜치) - Local Ⅲ (Merge Log) (0) | 2012.04.23 |
Git Branch (브랜치) - Local Ⅱ (Merge, Delete) (0) | 2012.04.15 |