Git 클론 분기 – 특정 분기를 복제하는 방법

SVN 및 CVS와 같은 이전 중앙 집중식 버전 제어 시스템과 달리 Git은 배포됩니다. 모든 개발자는 로컬 또는 원격으로 코드에 대한 전체 내역과 제어 권한을 갖습니다. 또한 다른 위치에서 적합하다고 판단되는 코드의 여러 부분에 액세스하거나 조작 할 수 있습니다.

Linus Torvalds (Linux 운영 체제 커널의 유명한 제작자)는 2005 년 Linux 커널 개발을 위해 Git을 만들었 기 때문에 세계에서 가장 널리 사용되는 최신 버전 제어 시스템이되었습니다.

이 기사에서는 Git 복제 및 Git 브랜치 워크 플로를 소개하고 필요에 따라 특정 브랜치를 복제하는 방법을 보여줄 것입니다. 의 시작하자! ?

전제 조건

  • 터미널에 대한 기본 지식
  • 터미널에 명령을 입력하는 기능
  • Git 설치 (계속 방법을 보여 드리겠습니다)
  • GitHub 계정
  • 너의 얼굴에 미소 (그 미소 친구를 올려?)

Git 및 GitHub에 대한 빠른 소개

Wikipedia에 따르면

Git 은 소프트웨어 개발에서 프로젝트 (코드)의 변경 사항을 추적하도록 설계된 분산 버전 제어 시스템입니다. 개발자 간의 조정, 공동 작업, 속도 및 효율성을 강화하기위한 것입니다.

반면 GitHub 는 Git을 사용한 버전 제어를위한 웹 기반 호스팅 서비스입니다. Git의 모든 분산 버전 제어 및 소스 코드 관리 기능을 제공하고 컴퓨터 코드에 대한 더 많은 기능을 추가합니다.

Windows에 Git을 설치하는 방법

여기에서 Windows Installer 용 최신 Git을 다운로드하여 설치하십시오.

Linux에 Git을 설치하는 방법

다음은 Linux 배포판을 기반으로하는 명령입니다.

Debian 또는 Ubuntu

sudo apt-get update sudo apt-get install git

페도라

sudo dnf install git

CentOS

sudo yum install git

아치 리눅스

sudo pacman -Sy git

젠투

sudo emerge --ask --verbose dev-vcs/git

Mac에 Git을 설치하는 방법

여기에서 최신 Git for Mac 설치 프로그램을 다운로드하여 설치하십시오.

또는 다음 명령을 입력 할 수 있습니다.

brew install git

이제 Git이 설치되었으므로 자습서로 이동하겠습니다.

Git 클론 소개

Git을 사용하면 "저장소"에서 프로젝트를 관리하고 버전을 지정할 수 있습니다. 이 저장소는 GitHub와 같은 버전 제어를 위해 웹 기반 호스팅 서비스에 저장됩니다.

그런 다음이 저장소를 로컬 머신에 복제하고 모든 파일과 브랜치를 로컬로 가질 수 있습니다 (곧 브랜치에 대해 자세히 설명하겠습니다).

예를 들어 다음과 같이 SSH를 사용하여 freeCodeCamp의 저장소를 복제 할 수 있습니다.

git clone [email protected]:freeCodeCamp/freeCodeCamp.git

Git 브랜치 소개

프로젝트에서 작업 할 때 다른 기능이있을 수 있습니다. 그리고 여러 기여자가이 프로젝트와 그 기능에 대해 작업 할 것입니다.

분기를 사용하면 분기에있는 동일한 파일로 "놀이터"를 만들 수 있습니다 master. 이 분기를 사용하여 독립적 인 기능을 빌드하고, 새로운 기능을 테스트하고, 주요 변경 사항을 만들고, 수정 사항을 만들고, 문서를 작성하거나, 프로덕션 코드를 중단하거나 영향을주지 않고 아이디어를 시험해 볼 수 있습니다. 완료되면 분기를 프로덕션 master분기 로 병합합니다 .

분기는 Git의 핵심 개념이며 GitHub에서도 한 프로젝트의 여러 버전의 워크 플로를 관리하는 데 사용됩니다. master지점은 항상 가장 자주 "생산 및 배포 코드"로 간주됩니다 저장소의 기본 지점입니다. passwordless-auth또는 같은 새 분기를 분기 refactor-signup-ux에서 만들 수 있습니다 master.

Git 브랜치를 복제하는 방법

git clone명령을 사용하여 리포지토리를 복제 할 수 있지만 이렇게 하면 브랜치 및 원격 HEAD. 이것은 일반적 master으로 기본적으로 저장소의 다른 모든 분기를 포함합니다.

따라서 저장소를 복제 할 때 master및 다른 모든 분기 를 복제합니다 . 즉, 다른 지점을 직접 체크 아웃해야합니다.

프로젝트 작업이 사용자 대시 보드에 암호없는 인증을 추가하는 기능을 작업하는 것이라고 가정 해 보겠습니다. 그리고이 기능은 passwordless-auth지점에 있습니다.

master"기능 브랜치"가 master나중에 병합 될 것이므로 브랜치 가 실제로 필요하지 않습니다 . 그러면 passwordless-auth"필요하지 않은 파일 묶음"이있는 다른 모든 분기를 가져 오지 않고이 분기 를 복제하는 방법은 무엇입니까?

이것을 설명하기 위해이 샘플 저장소를 만들었습니다. 이 저장소에는 Nextjs로 빌드 된 간단한 블로그가 있으며 4 개의 더미 브랜치가 있습니다.

  • 석사
  • dev
  • 각색
  • 비밀번호없는 인증

Nextjs에서 폴더 내의 모든 파일 pages/api/api/*경로에 매핑되며 page. 리포지토리에서 각 분기를 다르게 만들기 위해이 디렉터리에 다른 더미 API를 만들었습니다.

master분기 파일 보유 페이지 / API / hello.js을 하면서 passwordless-auth파일 보유 페이지 / API / auth.js을 . 각 파일은 더미 텍스트 응답 만 반환합니다. master여기에서의 hello API 응답을 참조 하십시오 (특별 메시지 포함?).

저장소를 복제 해 보겠습니다.

git clone [email protected]:BolajiAyodeji/nextjs-blog.git

이렇게하면이 저장소의 모든 분기에 액세스 할 수 있으며 각 분기간에 쉽게 전환하여 각 버전과 해당 파일을 볼 수 있습니다.

git branch -a

Remotes / origin / .. 분기가 어디에서 왔는지 궁금 하십니까?

리포지토리를 복제 할 때 인터넷의 리포지토리 또는 원격 이라고하는 내부 서버에서 데이터를 가져옵니다 . origin이라는 단어는 원격 URL을 대체하기 위해 Git에서 만든 별칭입니다 (원하는 경우 다른 별칭을 변경하거나 지정할 수 있음).

이러한 remotes / origin / .. 브랜치는 인터넷에서 복제 한 원본 저장소를 다시 가리 키므로 원본에서 여전히 풀 / 푸시를 수행 할 수 있습니다.

따라서 master컴퓨터에 복제 할 때는 인터넷 remotes/origin/master의 원래 master분기이고 master로컬 컴퓨터에 있습니다. 그래서 당신은 remotes/origin/master.

요약하자면 Remote 는 인터넷의 저장소를 가리키는 URL이고 Origin 은이 원격 URL의 별칭입니다.

특정 분기를 복제하는 방법

이제 데모 저장소에서 특정 분기를 복제 해 보겠습니다. 특정 분기를 복제하는 방법에는 두 가지가 있습니다. 다음 중 하나를 수행 할 수 있습니다.

  • 저장소를 복제하고 모든 분기를 가져 와서 특정 분기로 즉시 체크 아웃하십시오.
  • 저장소를 복제하고 단일 분기 만 가져옵니다.

옵션 1

git clone --branch  

또는

git clone -b  

이와 함께, 당신은 당신이 지정한 하나에 모든 저장소에 지사를, 체크 아웃을 가져 오기 및 특정 분기를 위해 구성된 지역 분기를하게 git push하고 git pull. 그러나 여전히 각 지점에서 모든 파일을 가져 왔습니다. 이것은 당신이 원하는 것이 아닐 수도 있습니다. ?

테스트 해 보겠습니다.

 git clone -b passwordless-auth [email protected]:BolajiAyodeji/nextjs-blog.git

이것은 자동으로 passwordless-auth로컬 브랜치로 구성 되지만 여전히 다른 브랜치를 추적합니다.

옵션 2

git clone --branch  --single-branch 

또는

git clone -b  --single-branch 

--single-branch옵션은 Git 버전 1.7.10 이상에서 도입 된 것을 제외하고 옵션 1과 동일한 작업을 수행합니다 . 다른 분기를 가져 오지 않고 지정된 분기에서만 파일을 가져올 수 있습니다.

테스트 해 보겠습니다.

git clone -b passwordless-auth --single-branch [email protected]:BolajiAyodeji/nextjs-blog.git

이것은 자동으로 passwordless-auth로컬 분기로 구성 되며이 분기 만 추적합니다.

실행 cd pages/api하면 이전 설정에서 예상 한대로 분기 에서 auth.js파일을 찾을 수 passwordless-auth있습니다.

결론

인터넷이나 저장 공간이 부족할 수 있지만 특정 지점에서 작업을 수행해야합니다. 또는 다양한 이유로 제한된 파일로 특정 분기를 복제 할 수 있습니다. 다행히 Git은이를 수행 할 수있는 유연성을 제공합니다. 근육을 구부리고 시험해보십시오. 배울 것이 훨씬 더 많습니다.

한 번에 하나씩 요? ✌?