스택큐힙리스트

어떻게 Git 저장소의 하위 디렉토리만 복제하나요? 본문

카테고리 없음

어떻게 Git 저장소의 하위 디렉토리만 복제하나요?

스택큐힙리스트 2023. 11. 27. 12:09
반응형

내 Git 저장소에는 루트에 두 개의 하위 디렉터리가 있습니다:


/finisht
/static

이것이 SVN에 있을 때, /finisht는 한 곳에서 체크아웃되었고, /static은 다른 곳에서 체크아웃되었습니다. 다음과 같이:


svn co svn+ssh://[email protected]/home/admin/repos/finisht/static static

Git으로 이것을 할 수 있는 방법이 있을까요?

답변 1

function git_sparse_clone() (
rurl=$1 localdir=$2 && shift 2
mkdir -p $localdir
cd $localdir
git init
git remote add -f origin $rurl
git config core.sparseCheckout true
# 남은 인수에 대해 반복
for i; do
echo $i >> .git/info/sparse-checkout
done
git pull origin master
)

사용법:


git_sparse_clone http://github.com/tj/n ./local/location /bin

주의: 이 경우에도 서버에서 저장소 전체를 다운로드합니다. 체크아웃만 크기가 줄어듭니다. 현재로서는 단일 디렉터리만 복제할 수 없습니다. 그러나 저장소의 히스토리가 필요 없다면 얕은 복제로 대역폭을 절약할 수 있습니다. 얕은 복제 방법에 대한 정보는 아래의 udondan's answer를 참조하세요. clone과 희소 체크아웃을 결합하는 방법에 대한 정보는 아래의 udondan의 답변을 참조하세요.


Git 2.25.0부터 (2020년 1월) Git에 실험적인 sparse-checkout 명령이 추가되었습니다:


git sparse-checkout init
# 같음:
# git config core.sparseCheckout true
git sparse-checkout set A/B
# 같음:
# echo A/B >> .git/info/sparse-checkout
git sparse-checkout list
# 같음:
# cat .git/info/sparse-checkout

답변 2

서브디렉토리만을 클론하는 방법, GIT 저장소
GIT은 버전 관리 시스템으로 개발자들 사이에서 광범위하게 사용되고 있습니다. GIT을 사용하면 프로젝트의 모든 변경 내역을 추적하고 리모트 저장소에 업로드할 수 있습니다. 때로는 GIT 저장소에서 전체 프로젝트를 클론하는 것이 아니라 특정 서브디렉토리만 클론해야 하는 경우가 있습니다. 이 글에서는 서브디렉토리만을 클론하는 방법에 대해 알아보겠습니다.
1. GIT 저장소 클론하기:
우선 GIT 저장소를 클론하는 것부터 시작해야 합니다. 클론하려는 서브디렉토리를 포함하고 있는 GIT 저장소의 URL을 알고 있어야 합니다. 이 URL은 일반적으로 사내 또는 온라인 호스팅 플랫폼에서 제공됩니다. 터미널 또는 Git Bash를 사용하여 다음 명령어를 입력합니다:
```
git clone
```
위 명령어를 실행하면 저장소의 전체 디렉토리와 파일이 클론될 것입니다.
2. 서브디렉토리 이동:
GIT 저장소를 클론한 후, 서브디렉토리로 이동해야 합니다. 터미널에서 다음과 같이 명령어를 입력합니다:
```
cd
```
위 명령어에서 는 클론한 GIT 저장소 안에서 원하는 서브디렉토리의 경로입니다.
3. 서브디렉토리로 이동한 상태에서 초기화:
이제 서브디렉토리로 이동한 상태에서 초기화를 진행해야 합니다. 다음 명령어를 통해 GIT 저장소를 초기화합니다:
```
git init
```
4. 원격 저장소 추가:
서브디렉토리에 새로운 원격 저장소를 추가해야 합니다. 다음 명령어를 통해 원격 저장소를 추가합니다:
```
git remote add origin
```
여기서 은 서브디렉토리가 포함된 GIT 저장소의 URL입니다.
5. 서브디렉토리만 선택:
이제 복제할 서브디렉토리만 선택하면 됩니다. 다음 명령어를 통해 원하는 디렉토리만 선택합니다:
```
git config core.sparseCheckout true
echo >> .git/info/sparse-checkout
```
위 명령어에서 는 클론한 GIT 저장소 안에서 원하는 서브디렉토리의 경로입니다. 필요에 따라 위 명령어를 여러 번 반복해 서브디렉토리를 추가할 수 있습니다.
6. 변경 사항 가져오기:
마지막으로, 변경 사항을 가져와 클론한 서브디렉토리에 적용해야 합니다. 다음 명령어를 사용합니다:
```
git pull origin master
```
이제 선택한 서브디렉토리만 클론되어 원하는 작업을 수행할 수 있습니다.
이렇게 GIT 저장소의 서브디렉토리만을 클론하는 방법을 알아보았습니다. GIT을 사용하여 개발을 진행할 때, 프로젝트의 일부분만 사용하고 싶을 때 유용한 기술입니다. 위 방법을 따라하면 효율적으로 원하는 디렉토리만 클론할 수 있습니다.

반응형
Comments