Git에서 특정 폴더 가져오기

John Wachira 2024년2월15일
Git에서 특정 폴더 가져오기

이 문서에서는 원격 Git 리포지토리에서 특정 폴더를 가져오는 방법을 설명합니다. 이 접근 방식은 대규모 리포지토리의 일부 파일에 대해 작업하려는 경우에 유용합니다.

2GB 크기의 리포지토리에서 단일 폴더를 다운로드하면 많은 시간을 절약할 수 있습니다. 더 이상 고민하지 않고 바로 시작하겠습니다.

Git에서 특정 폴더 가져오기

특정 폴더를 가져오는 데 사용할 수 있는 가장 쉬운 경로는 Git Sparse Checkout 기능을 사용하는 것입니다. 개념을 설명할 수 있지만 이 시나리오에 적합한 예가 있습니다.

아래 예에는 수십 개의 파일이 디렉터리에 정렬되어 있는 GitHub에서 호스팅되는 원격 리포지토리가 있습니다. apps 폴더를 가져와서 작업하려고 합니다.

원격 저장소

아래 단계에 따라 apps 폴더를 가져옵니다.

Git Bash에서 apps 폴더를 저장할 디렉토리를 생성합니다.

$ mkdir Djangp-datta-able

cd 명령을 사용하여 디렉터리로 이동하고 Git 리포지토리를 초기화합니다.

$ git init

다음은 로컬 저장소의 현재 내용입니다.

$ ls -la
total 4
drwxr-xr-x 1 pc pc 0 Aug 31 09:45 ./
drwxr-xr-x 1 pc pc 0 Aug 31 09:44 ../
drwxr-xr-x 1 pc pc 0 Aug 31 09:45 .git/

다음으로, 로컬 저장소에서 가져오려는 원격 저장소를 추가합니다. 우리는 다음을 실행할 것입니다:

$ git remote add origin https://github.com/app-generator/django-datta-able.git

완료되면 저장소에서 sparse checkout 속성을 활성화할 수 있습니다. 아래와 같이 git config 명령을 사용합니다.

$ git config core.sparsecheckout true

그런 다음 아래와 같이 sparse checkout 속성에 apps 폴더를 추가할 수 있습니다.

$ echo 'apps' >> .git/info/sparse-checkout

apps를 가져오려는 디렉터리로 바꿀 수 있습니다. sparse checkout 기능에 여러 디렉토리를 추가할 수도 있습니다.

남은 것은 원격 저장소에서 가져오는 것입니다. 우리는 다음을 실행할 것입니다:

$ git pull origin master

위의 명령은 apps 폴더를 가져와 로컬 디렉토리에 복제합니다. 로컬 저장소의 내용을 확인합시다.

$ ls -la
total 8
drwxr-xr-x 1 pc pc 0 Aug 31 09:49 ./
drwxr-xr-x 1 pc pc 0 Aug 31 09:44 ../
drwxr-xr-x 1 pc pc 0 Aug 31 09:50 .git/
drwxr-xr-x 1 pc pc 0 Aug 31 09:49 apps/

이제 로컬 리포지토리에 apps/ 폴더가 있음을 알 수 있습니다. 디렉토리를 확인하면 다음을 찾을 수 있습니다.

디렉토리의 앱 폴더

당신은 그것을 가지고 있습니다. 원격 저장소에서 단일 폴더를 성공적으로 가져왔습니다.

이제 코드를 수정하고 커밋하고 원격 저장소로 다시 푸시할 수 있습니다.

종료하기 전에 사용할 수 있는 다른 방법이 있으며 이에 대해서는 곧 설명하겠습니다. 그러나 우리가 논의하려는 방법은 코드를 수정하고 원격으로 다시 푸시하는 것을 허용하지 않습니다.

로컬 리포지토리에 원격 리포지토리를 추가한 후 git fetch 명령을 실행하고 아래와 같이 원하는 폴더를 확인합니다.

$ git checkout HEAD path/to/your/dir/or/file

우리는 Stack Overflow에서 위의 방법을 얻었고 원격 저장소에서 특정 폴더를 가져올 수 있음을 보여줍니다. 원격으로 수정, 커밋 및 푸시백하려면 sparse checkout 기능을 사용하십시오.

작가: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

관련 문장 - Git Pull