새소식

PROJECT/PRE 프로젝트

깃허브 프로젝트 브랜치 클론하기

  • -

팀에서 깃허브에 작업한 파일을 올릴때 우리팀은 4가지 단계를 걸치기로했다.

  • 1. main : 배포 및 운영될 곳
    • 2. dev : 배포 전 코드리뷰를 진행 할 곳
      • 3. frontend / backend : 프론트엔드와 백엔드의 브랜치 분리 
        • 4. feature : 프론트엔드에서 각자 작업하는 부분을 브랜치로 생성해서 작업

먼저 깃허브에서 브랜치 상태에는 main, dev, frontend 를 추가해두었다.

이상태에서 프론트엔드 브랜치를 가서 코드를 눌러 주소를 복사후 클론해도 해당 프로젝트 메인의 것이 클론되었다.

클론한 상태

단순히 생각했을때 해당 프로젝트폴더에서 브랜치에 들어가 주소를 클론하면 될거라 생각했다. 그러다가 클론될 주소가 main이든 dev든 frontend든 다 같다는걸 보고서 특정 브랜치를 다운받아야 하는구나 생각했다.

특정한 브랜치를 클론 하는 법

특정한 브랜치를 클론하는 방법에는 두가지가 있다:

  • 리포지토리를 클론한 다음 모든 브랜치들을 가져온다(fetch). 그리고나서 특정한 브랜치로 전환(checkout)한다.
  • 리포지토리를 클론한 후에 그 특정한 브랜치만 페치한다.

첫번째 방법

git clone --branch <branchname> <remote-repo-url>

또는

git clone -b <branchname> <remote-repo-url>

여기에서 -b --branch의 줄임말이다.

이 명령어로 리포지토리에 있는 모든 브랜치들을 페치한 후에 특정한 브랜치로 전환한다. 그러면 그 브랜치를 기준으로 로컬에서 git push 와 git pull를 할 수 있도록 설정이 된다. 하지만 이렇게 하면 각 브랜치가 갖고 있는 모든 파일들을 다 페치한 상태이다. 그렇게까지 할 필요는 없을 수도 있다(혹은 원하지 않은 결과일 수도 있다).

git clone --branch frontend git@github.com:codestates-seb/seb43_pre_008.git

특정 브랜치 다운

 


두번째 방법

git clone --branch <branchname> --single-branch <remote-repo-url>

또는

git clone -b <branchname> --single-branch <remote-repo-url>

여기에서 -b --branch의 줄임말이다.

이 명령어는 첫번째 방법과 같은 동작을 수행한다. 차이점은 --single-branch 옵션이 붙었다는 것인데 이 옵션은 Git 버전 1.7.10 에서 소개되었고 그 이후 버전들에서도 가능하다.
이 옵션을 붙이게 되면 특정한 브랜치의 파일들만 페치하고 다른 브랜치들에서는 페치를 하지 않는다.


세번째 방법

master clone 후 원격영역에서 추가로 branch를 가져오기

git branch -a
git checkout -t <remote path>

우선 -a 옵션으로 branch를 전체를 확인하고 특정 branch를 checkout합니다.
아래에서 빨간색으로 보이는 branch는 원격에 있는 branch입니다
** -r 옵션은 원격에 있는 branch만을 확인합니다.

-t 옵션은 원격에 있는 branch name을 그대로 사용하기 위한 옵션입니다. 별도의 이름 지정이 필요없습니다.
아래와 같이 rewal branch가 잘 생성된것을 확인 가능합니다.

 

참고: https://velog.io/@divan/git-%EC%9B%90%EA%B2%A9-branch%EB%A1%9C-%EB%B3%80%EA%B2%BD#2-master-clone-%ED%9B%84-%EC%9B%90%EA%B2%A9%EC%98%81%EC%97%AD%EC%97%90%EC%84%9C-%EC%B6%94%EA%B0%80%EB%A1%9C-branch%EB%A5%BC-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0

https://www.freecodecamp.org/korean/news/git-remote-branch-checkout/

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.