개발관련/Git

git 저장소에서 하나의 파일만 체크 아웃하는 방법

Rateye 2021. 12. 8. 10:59
728x90
반응형
질문 : git 저장소에서 하나의 파일 만 드물게 체크 아웃하는 방법은 무엇입니까?

git repo에서 하나의 파일 만 체크 아웃하려면 어떻게해야합니까?

답변

원래 나는 2012 git archive ( Jared Forsyth답변Robert Knight답변 참조 )에서 git1.7.9.5 (2012 년 3 월) 이후 Paul Brannan답변을 언급했습니다.

git archive --format=tar --remote=origin HEAD:path/to/directory -- filename | tar -O -xf -

그러나 2013 년에는 원격 https://github.com URL에 대해 더 이상 불가능했습니다.
이전 페이지 " 저장소를 아카이브 할 수 있습니까? "를 참조하십시오.

현재 (2018) 페이지 인 ' GitHub의 콘텐츠 및 데이터 보관 정보 '에서는 GHTorrent 또는 GH Archive 와 같은 타사 서비스를 사용할 것을 권장합니다.


따라서 로컬 복사본 / 클론도 처리 할 수 있습니다.

이 답변 에서 언급 한 바와 같이 베어 저장소의 로컬 사본이있는 경우 다음을 수행 할 수 있습니다.

git --no-pager --git-dir /path/to/bar/repo.git show branch:path/to/file >file

또는 먼저 리포지토리를 복제해야합니다. 즉, 작업 트리의 .git 리포지토리에서 전체 기록을 가져옵니다.

  • 그러나 다음과 같이 희소 체크 아웃을 수행 할 수 있습니다 (Git1.7 이상을 사용하는 경우).
    • 스파 스 체크 아웃 옵션 활성화 ( git config core.sparsecheckout true )
    • .git/info/sparse-checkout 파일에보고 싶은 내용 추가
    • 필요한 것만 표시하기 위해 작업 트리 다시 읽기

작업 트리를 다시 읽으려면 :

$ git read-tree -m -u HEAD

이렇게하면 원하는 것을 정확하게 포함하는 작업 트리가 생성됩니다 (파일이 하나 뿐인 경우에도).

Richard Gomes 는 (주석에서 ) " 어떻게 단일 디렉토리 또는 git 저장소의 디렉토리 목록을 복제, 가져 오기 또는 스파 스 체크 아웃합니까? "를 지적합니다.

히스토리 다운로드를 피하는 bash 함수는 단일 분기를 검색하고 필요한 파일 또는 디렉토리 목록을 검색합니다.

출처 : https://stackoverflow.com/questions/2466735/how-to-sparsely-checkout-only-one-single-file-from-a-git-repository
728x90
반응형