자식 스파스 체크아웃
6799 단어 gitdevjournal
git sparse-checkout
을 발견했습니다.git 프로젝트의 하위 디렉토리를 복제하는 방법(zip이 아님)
어두움 ・ 8월 12일 ・ 2분 읽기
#git
#bash
#github
#gitlab
그의 기사는 훌륭했고 기능을 발견하는 데 도움이 되었습니다.
여기에서 내가 찾은 내용을 보관용으로 기록하고 싶습니다
git sparse-checkout.
.git sparse checkout이란 무엇입니까?
다음은 git 문서에서 설명하는 내용입니다.
Reduce your working tree to a subset of tracked files
그래서 이런 종류의 저장소가 있다면
README.md
CHANGELOG.md
src/
assests/
tests/
web/
tools
그리고
src
및 tests
폴더만 가져오려면 이것을 사용하십시오.src/
tests/
다른 폴더는 필요와 관련이 없기 때문입니다.
왜 이것이 필요할까요?
CI를 실행할 때 자산(이미지, css ...)이 필요하지 않아 거대한 저장소에서 속도를 높일 수 있습니다
git clone
.그러나 커밋을 추가하고 정상적으로 작업할 수 있습니다. 단순히 다른 폴더의 정보를 가져오지 않았습니다.
흥미로운 읽기
먼저 매우 흥미로운 기사를 읽었습니다.
스파스 체크아웃으로 더 빠른 git 클론 | 아이메릭 보멧
우리 REKKI는 모든 것을 포함하는 모노 레포에서 작업하고 있습니다.
대부분의 서비스 및 작업에 대한 백엔드 Go 코드입니다. 시간이 흐르고 크기가 커지면
이 리포지토리의 증가, 초기에 걸리는 시간…
aymericbeaumet.com
편집: 작성자 자신의 dev에 대한 기사를 찾을 수도 있습니다.
스파스 체크아웃으로 더 빠른 git 클론
Aymeric Beaumet ・ 7월 26일 ・ 4분 읽기
#git
#performance
물론 설명서https://www.git-scm.com/docs/git-sparse-checkout
사용 방법 ?
git clone 최소 가져오기로 시작
git clone --filter=blob:none --no-checkout <repository>
아무것도 없는 상태로 저장소를 구성할 수 있지만 아직은 중요합니다.
--filter=blob:none
: BLOB 개체를 가져오지 않도록 지시합니다--no-checkout
: HEAD따라서 여기에서 분기를 수행할 수 있으며
git checkout
분기를 사용하지 않은 경우--no-checkout
와 다를 바가 없습니다.대신
git sparse-checkout
를 사용할 수 있습니다.스파스 체크아웃
따라서
src
및 tests
폴더만 필요하다는 점을 기억하십시오.이렇게 하세요:
git sparse-checkout set src tests
--stdin을 사용할 수 있는 팁
당신은 또한 사용할 수 있습니다
--stdin
echo -e "src\nassets" | git sparse-checkout set --stdin
참고: 여기서는
echo
가 예로 사용되며 --stdin
를 사용하면 사용법을 스크립팅하고 있음을 의미합니다.참고: 필요에 따라 추가할 수도 있습니다.
git sparse-checkout set src
# ...
# and later, even days later
git sparse-checkout add tests
# and here it would fetch the missing files
참고:
--stdin
와 함께 git sparse-checkout add
를 사용할 수도 있습니다.팁: git sparse-checkout list를 사용하여 추적 중인 항목을 확인하세요.
언제든지
git sparse-checkout list
를 사용하여 구성된 항목을 확인할 수 있습니다.git sparse-checkout list
src
tests
git은 이것을 내부적으로 어떻게 따릅니까?
.git/info/sparse-checkout
파일에서 구성된 항목을 찾을 수 있습니다. /*
!/*/
/src/
/tests/
참고: 스파스 체크아웃과 관련된 다른 파일이 있습니다. 설명서를 읽을 수 있습니다.
경고: 해당 파일을 직접 가지고 노는 것보다
git sparse-checkout
명령을 사용하는 것이 좋습니다.그래서, 그럼?
브랜치를 간단히 가져와서 체크아웃할 수 있습니다. 요청된 폴더나 파일만 표시됩니다.
README.md
CHANGELOG.md
src/
tests/
whatever/
foobar/
git sparse-checkout set src tests
그런 다음
main
분기를 확인하면 이것을 얻을 수 있습니다.git checkout main
README.md
CHANGELOG.md
src/
tests/
참고: 기본적으로 저장소 루트에 있는 모든 파일(폴더가 아닌 파일만)은 항상 체크아웃됩니다. 설명서에서 그 이유를 확인할 수 있습니다.
이를 원하지 않으면 스파스 체크아웃을 설정할 때
--no-cone
매개변수를 통해 레거시 기능을 사용해야 합니다.git sparse-checkout set --no-cone src tests
체크 아웃하면 이것을 얻을 수 있습니다.
src/
tests/
이 정보가 유용하기를 바랍니다.
Reference
이 문제에 관하여(자식 스파스 체크아웃), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ccoveille/git-sparsecheckout-5gog텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)