본문 바로가기

CS study/기타 토막지식

[GIT] 대용량 파일을 점진적으로 받아올 때. (--depth)

목차

     

    https://eunjinii.tistory.com/128

     

    RPC failed; curl 18 transfer closed with outstanding read data remaining 문제해결 방법

    문제상황 git clone을 받으려고 하는데 "RPC failed; curl 18 transfer closed with outstanding read data remaining" 라는 문구가 뜨면서 클론이 안 되고 있다. 원인 규모가 큰 레포지토리를 클론하려고 하는데 로컬에

    eunjinii.tistory.com

     

    해당 블로깅을 참고하였다.

     

     

    문제 상황

     

    동영상, Data 파일을 넣자마자 깨져버려서 Pull이고 뭐고 안 됐다.

     

     

    최종 파일을 정리하고, 발표 대본과 데이터를 넣던 도중 팀원이 최종 브랜치에 많은 양의 대용량 데이터를 넣는 일이 있었다.

    이 이후 pull이나 파일을 받아오는 과정에서 RPC failed 에러가 발생했다.

    아마, 대용량 파일 변경 기록이 있어서 일 테였다.

     

    최신 커밋 기록만 받아와서 효율적으로 받아오기 (depth)

     

    git pull origin dev/elasticsearch --depth 1 명령어를 사용하면 Git은 'shallow clone'을 생성한다.

    이는 리포지토리의 전체 기록 대신 최신 커밋만 복사하는 것을 의미한다.

     

    --depth 1 옵션은 Git에게 가장 최근 커밋만 가져오라고 지시한다.

     

    --depth 의 역할:

    • 저장 공간 절약: 리포지토리의 전체 기록을 복사하지 않기 때문에 디스크 공간을 절약
    • 속도 향상: 최신 커밋만 받아오기 때문에 속도가 빨라짐. 특히 대용량 리포지토리나 느린 네트워크 환경에서 유용

    점진적으로 전체 리포지토리 받기?

    만약 점진적으로 전체 리포지토리를 받아오고 싶다면, --depth 옵션을 조절하여 더 많은 커밋을 가져올 수 있다.

    예를 들어, 먼저 --depth 10을 사용해 최근 10개의 커밋을 가져오는 식이다.

     

    혹은 ' git fetch --unshallow' 를 사용하여 모든 정보를 가져올 수도 있을 것이다.

     

    결론적으로, --depth 옵션은 리포지토리의 일부만 필요할 때 유용하다.

    다만 전체 기록에 대한 액세스가 필요한 경우에는 전체 리포지토리를 클론할 것.