clone 명령의 시나리오는 단지 최초에 한번만 원격 저장소의 작업물을 복제하고 시작하므로 변수가 많지 않습니다.
한 번의 명령으로 히스토리까지 모두 원격 저장소와 동일하게 복제되어 동일한 구조를 만들어 줍니다.
$ git clone git@github.com:ggamzzak/test.git
$ cd test
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
$ git remote show origin
Enter passphrase for key '/home/oops4u/.ssh/id_rsa':
* remote origin
Fetch URL: git@github.com:ggamzzak/test.git
Push URL: git@github.com:ggamzzak/test.git
HEAD branch: master
Remote branch:
master tracked
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushes to master (up to date)
branch -a 명령으로 로컬 저장소에 생성된 remote branch 까지 출력됩니다.
3개의 branch가 생성되어 있는데 * master 를 제외한 것들은 모두 remote branch입니다.
origin/master 는 origin 원격 저장소의 master branch 를 의미하며 로컬의 master branch를 추적하게 됩니다.
clone 이 완료되었으면 로컬에 생성된 master branch에서 작업을 진행하면 됩니다.
여기서 꼭 알아두어야 할 것이 바로 이 그림입니다.
clone 이 완료된 직후의 그림으로 볼 수 있는데, 그림상으로는 단지 두개의 평범한 branch 입니다.
하지만 remote branch 는 직접 컨트롤 할 수 없으며,
로컬 master 에서 작업이 진행된 후에 pull 명령으로 master와 병합되어 나갈 것입니다.
git clone multiple branches
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/other1
remotes/origin/other2
원격 저장소에 branch가 두 개 이상일 경우에도 로컬에서 컨트롤이 가능한건,
remote branch 를 제외한 master branch 한 개 밖에 없다는 점.
원격 저장소의 특정 branch 를 가져오려면 clone -b <branch> 명령을 사용할 수 있습니다.
WRITTEN BY
- 손가락귀신
정신 못차리면, 벌 받는다.