Git 리포지토리의 복제 하위 디렉터리

Azhar Bashir Khan 2022년5월31일
Git 리포지토리의 복제 하위 디렉터리

이 튜토리얼은 Git 리포지토리의 하위 디렉토리를 복제하는 방법을 알려줍니다.

버전 관리 시스템인 Git은 프로젝트 디렉토리에 대한 변경 내역을 유지 관리합니다. 일반적인 프로젝트 개발 환경에서는 서로 다른 프로젝트 모듈을 서로 다른 하위 디렉토리로 분리합니다.

그런 다음 특정 프로젝트 모듈 하위 디렉토리만 체크아웃하거나 복제할 수 있습니다. 이러한 목적으로 Git에서 제공하는 sparse-checkout 기능을 사용할 수 있습니다.

이제 이를 예를 들어 설명하겠습니다.

Git의 리포지토리에 있는 복제 또는 체크아웃 하위 디렉터리

Git은 협업 개발 환경에서 프로젝트 디렉토리의 파일에 대한 변경 사항을 추적하는 데 사용됩니다. 하나는 프로젝트 개발 환경의 기본 프로젝트 디렉토리 내 별도의 하위 디렉토리에 다른 프로젝트 모듈을 보관합니다.

Git 리포지토리는 이 기본 프로젝트 디렉터리를 추적하므로 전체 프로젝트 디렉터리를 복제하거나 체크아웃할 수 있습니다. 일반적으로 서로 다른 팀은 대규모 프로젝트의 서로 다른 프로젝트 모듈에서 작업합니다.

따라서 이러한 경우 전체 프로젝트 디렉토리를 체크아웃할 필요가 없습니다. 특정 팀이 작업 중인 프로젝트 모듈 하위 디렉토리만 복제하면 됩니다.

특정 하위 디렉토리(즉, 프로젝트 Git 리포지토리의 하위 집합)만 복제하는 것을 sparse checkout이라고 합니다. sparse checkout의 Git 리포지토리에 있는 프로젝트 디렉토리에서 원하는 하위 디렉토리만 체크아웃할 수 있습니다.

my_project라는 프로젝트 디렉토리가 있다고 가정합니다. 프로젝트 디렉토리 my_project에는 frontend, backend, documentation 등의 다른 모듈에 대한 하위 디렉토리가 있습니다.

frontend 모듈 하위 디렉토리만 체크아웃하거나 복제하려고 합니다. 따라서 이제 다음과 같이 먼저 리포지토리에 대한 디렉터리를 만듭니다.

$ mkdir my_project
$ cd my_project

프로젝트 디렉토리 생성 후 Git 리포지토리를 초기화하고 다음과 같이 원격 URL을 추가합니다.

$ git init
$ git remote add -f origin https://github.com/johndoe/my_project.git

주 프로젝트 디렉토리의 하위 디렉토리만 체크아웃하거나 복제하려면 sparse checkouts를 활성화해야 합니다.

git config 명령을 사용하여 동일한 결과를 얻을 수 있습니다. 다음과 같이 git config 명령을 사용해야 합니다.

$ git config core.sparsecheckout true

이제 체크아웃하려는 하위 디렉토리를 Git에 알릴 수 있습니다.

따라서 frontend 하위 디렉토리의 체크아웃만 활성화하려면 .git/info/sparse-checkout 파일에 이를 나열해야 합니다.

$ echo "frontend/" >> .git/info/sparse-checkout

이제 원격 Git 저장소에서 파일을 가져올 수 있습니다.

$ git pull origin master

이제 작업 트리에는 메인 프로젝트 my_projectfrontend 하위 디렉토리만 있습니다.

따라서 Git에서 Git 저장소의 특정 하위 디렉토리만 복제하거나 체크아웃하는 방법을 배웠습니다.

자세한 내용은 다음을 방문하십시오.

  1. git-init
  2. git-read-tree
  3. git-sparse-checkout

관련 문장 - Git Clone