programing

Git을 사용하여 프로젝트의 최신 개정판을 얻는 방법은 무엇입니까?

i4 2023. 5. 26. 20:43
반응형

Git을 사용하여 프로젝트의 최신 개정판을 얻는 방법은 무엇입니까?

전체 리포지토리를 복제하지 않고 패치를 제출하지 않습니다.저는 앞으로 쉽게 새로운 개정을 받고 싶습니다.

사용해 보았습니다.git clone그러나 이렇게 하면 전체 저장소의 복사본(파일 크기 제한)이 생성되고 변경 사항을 추적하면 Disk 공간이 훨씬 더 커집니다(현재 100MB의 파일이 2GB 이상을 차지합니다).

이것이 가능합니까?

와 함께 사용--depth옵션 설정1최근 커밋으로 잘린 기록이 있는 얕은 복제본을 만듭니다.

예:

git clone --depth 1 https://github.com/user/repo.git

또한 중첩된 하위 모듈을 초기화하고 업데이트하려면 다음을 수행합니다.--recurse-submodules그리고 그것들을 얕게 복제하기 위해서, 또한 통과합니다.--shallow-submodules.

예:

git clone --depth 1 --recurse-submodules --shallow-submodules https://github.com/user/repo.git

얕은 복제를 위한 대체 솔루션(git clone --depth=1 <URL>원격측에서 지원하는 경우 를 사용할 수 있습니다.--remote기트 아카이브 옵션:

$ git archive --format=tar --remote=<repository URL> HEAD | tar xf -

또는 gitweb 또는 GitHub와 같은 일부 웹 인터페이스를 사용하여 문제의 원격 저장소를 탐색할 수 있는 경우 '스냅샷' 기능이 있을 수 있으며 웹 인터페이스에서 최신 버전(버전 정보 없이)을 다운로드할 수 있습니다.

요즘에는 얕은 클론은 대부분의 경우 권장되지 않습니다.

한편, 당신이 언급한 사용 사례에 대해서는 (최신 버전을 다운로드한 후 다시는 터치하지 않음),git clone --depth=1효과가 있습니다. 일반적인 경우에는 문제를 일으킬 수 있습니다.예를 들어, 업스트림에서 복제본을 최신 상태로 유지하려면git fetch얕은 클론에서는 훨씬 더 비쌉니다.

다운로드하는 데이터를 줄이려는 경우 일반적인 경우에는 부분 클론이 더 좋습니다.

git clone --filter=tree:0 <url>

이렇게 하면 커밋 기록은 계속 다운로드되지만 이전 커밋에 대한 파일 트리 및 파일 내용은 다운로드되지 않습니다.업스트림 커밋으로의 가져오기는 여전히 저렴합니다.

언급URL : https://stackoverflow.com/questions/1209999/how-to-use-git-to-get-just-the-latest-revision-of-a-project

반응형