지금까지 remote repository에서의 branch에 대해서 살펴보면서,
remote repository에 branch를 추가하는 것에 대해서 아직도 알아보지를 않았다.


1. remote branch 생성

   - remote repository 內에 branch를 생성해보자.


$ git branch develop
$ git checkout develop
$ git push origin develop

   - remote repository에 원하는 branch를 만들고 싶다면 원하는 이름으로 push를 해버리면 된다.
   - 위와 같이 궂이 꼭 별도의 branch를 만들어서 push를 할 필요는 없지만,
     예시와 같이 같은 이름의 branch를 만들어서 그 이름으로 push를 통해서 remote branch를 생성하는 것이 편하다.


2. clone

   - remote repository가 제대로 되어있는지 확인하기 위해서 새로 clone을 한 번 해보자.


$ git clone chani@localhost:/srv/repository/bare1repo.git
$ cd bare1repo
$ git branch -a



3. tracking

   - local master branch에서 작업을 한 뒤에 [ git push ]를 하면 알아서 'origin/master'에 들어간다.
   - 이는 서로간에 tracking 관계가 설정되어 있기에 그냥 되는 것이다.


$ git checkout --track origin/develop
$ git config -l

   - remote에 위치하고 있는 'origin/develop' branch를 따르는 branch를 local에 생성을 하고 싶다면,
     [ git checkout --track origin/develop ] 명령을 사용하면 된다.
   - 그러면, local 에서 'develop' 이라는 이름으로 branch를 생성하고, checkout 까지 한다.
   - 더불어, 핵심 포인트인 'develop ~ origin/develop' 사이에 tracking 기능이 설정이 된다.

   - tracking 관계를 확인하기 위해서는 [ git config -l ] 명령을 사용하면 된다. 뒤의 옵션은 "L"이다.
   - 밑 부분의 branch 를 살펴보면 연결관계를 확인할 수 있다.



4. checkout track

   - [ --track ] 옵션으로 생성을 하게 되면 local branch 이름을 remote branch 이름과 똑같이 설정을 한다.


$ git checkout -b hotfix origin/develop

   - 위와 같이 'hotfix'라는 이름으로 'origin/develop'을 tracking 하는 local branch를 생성하였다.



5. delete

   - 만들었으면 지우는 방법을 알아볼 차례다.


$ git push origin :develop

   - [ push ] 명령을 이용하여 remote branch를 삭제하면 되는데, branch 이름 앞에 [ : ]를 붙이면 된다.
   - 지금까지의 명령 방법과는 조금 다른 방식이니 주의해야할 것 같다.



tracking 관계에 있게 되면 기본적으로 둘 사이에 밀접한 관계를 맺고 있다는 의미가 된다.
해당 branch에서 작업한 것은 그 관계에 있는 remote branch에 반영을 하겠다라는 의미가 되기 때문이다.

이는 잘 이용하면 상당히 편하게 작업을 할 수 있을 것이다.


아름다운 근로자의 날이다.
근로자 여러분 모두 파이팅~!!!
반응형

'SCM > Git-GitHub' 카테고리의 다른 글

GitWeb + Nginx  (0) 2012.05.09
SSH Public Key - SSH 공개키  (0) 2012.05.04
Git Branch (브랜치) - Remote Ⅱ (Pull)  (0) 2012.04.30
Git Branch (브랜치) - Remote Ⅰ (Fetch)  (0) 2012.04.30
Git Branch (브랜치) - Local Ⅴ (ETC)  (0) 2012.04.24

+ Recent posts