원격 저장소에 push 할 로컬 branch 가 아니라면 브랜치 생성이든 삭제든 아무래도 상관없다. 단지 로컬 저장소에서만 이루어 지는 작업이기 때문에.
하지만 브랜치를 협업 등의 이유로 팀원과 공유하려면 원격 저장소에 해당 브랜치를 push 하고 팀원들이 fetch 받아 브랜치를 연결(tracking) 하면 된다.
1. 원격 저장소로 브랜치 공유하기
기존의 커밋들을 push 한다고 해서 내가 만들어 놓은 branch 까지 자동으로 올라가지는 않는다.
원격 저장소에도 별도로 브랜치를 만들고 로컬 저장소 브랜치와 연결을 시켜줘야 한다.
iss53 이라는 로컬 브랜치가 있다면 다음 명령어로 간단히 원격 저장소(origin)에 push 할 수 있다.
$ git push origin iss53 | cs |
위 명령은 $ git push origin iss53:iss53 과 같다. 만약 원격 저장소의 브랜치 이름을 issue 로 바꾸려면 다음 명령을 사용한다.
$ git push origin iss53:issue | cs |
이 명령으로 원격저장소에 issue 브랜치가 생성되었고 로컬 저장소의 iss53 브랜치와 연결되었다.
2. 원격 저장소에서 브랜치 가져오기
팀원이 원격 저장소에 올려놓은 브랜치를 가져오려면 fetch 나 pull 명령을 사용하면 된다.
하지만 fetch 명령을 실행한다고 해서 원격 저장소의 브랜치와 동일한 브랜치를 로컬에 생성하는 것은 아니다.
fetch 명령은 단지 원격 저장소의 브랜치 중 로컬과 연결되어 있지 않은 브랜치에 대한 포인터만 생성한다.
fetch 후에 로컬 브랜치를 하나 생성하고 원격 저장소의 브랜치와 연결만 해주면 된다.
방법은 다양하다.
$ git fetch origin * [new branch] iss55 -> origin/iss55 $ git checkout iss55 | cs |
$ git checkout -b iss55 origin/iss55 | cs |
$ git checkout --track origin/iss55 | cs |
위 명령들은 모두 로컬에 생성된 iss55 브랜치가 origin/iss55 브랜치를 바라보는 동일한 동작을 한다.
만약 이미 생성해 놓은 브랜치와 origin/iss55 브랜치를 연결하고 싶다면 -u (--set-upstream-to) 옵션을 사용하여 연결한다.
$ git branch -u origin/iss55 | cs |
3. 브랜치 삭제
iss55 브랜치 작업을 끝내고 다른 브랜치와 merge 하고, 더 이상 iss55 브랜치를 사용하지 않는다면 삭제를 해도 된다.
- 로컬 브랜치 삭제
$ git branch -d iss55 | cs |
- 원격 브랜치 삭제
$ git push origin --delete iss55 | cs |
WRITTEN BY
- 손가락귀신
정신 못차리면, 벌 받는다.