소스 저장소가 원격인 경우 공유 git clone의 의미는 무엇입니까?

소스 저장소가 원격인 경우 공유 git clone의 의미는 무엇입니까?

따라서 git 공유 저장소는 큰 덩어리가 있는 폴더를 동기화 상태로 유지하는 데 어느 정도 완벽한 것 같습니다. 내 컴퓨터에 700GB 정도의 사진과 비디오를 배포하고 싶지만 다른 추가 사항 없이 git을 사용하면 실제로 필요하지 않은 엄청난 디스크 사용량 오버헤드가 발생합니다.

이제 --shared(또는 -s)를 사용하여 복제하면 로컬 개체 저장소가 없는 git 저장소가 제공됩니다(올바르게 이해한 경우). 이는 나에게 거의 필요한 것입니다. 그러나 설명서는 "복제할 저장소가 로컬 컴퓨터에 있는 경우..."로 시작됩니다. clone -s는 SSH를 통해서도 잘 작동하지만, 복제할 저장소가 다음과 같은 경우 어떻게 되는지 궁금합니다.~ 아니다로컬 컴퓨터에서. -s에 대한 문서가 해당 문장으로 시작되므로 해당 사례 전체가 다루어지지 않는 것 같습니다. 특정 객체(아직 로컬에서 사용 중일 수 있음)가 가비지 수집될 수 있는 원격 측의 커밋 삭제를 제외하고 주의해야 할 사항이 있나요? (어차피 서버에서 기본 저장소를 사용하고 싶기 때문에 이런 일은 발생하지 않습니다)

답변1

나는 git을 좋아하지만 불행하게도 git은 이 작업에 적합한 도구가 아닙니다.

Git은 대부분 텍스트 콘텐츠 저장소의 변경 기록을 매우 효율적으로 유지하도록 설계되었습니다. git은 바이너리 보관을 지원하지만, 모든 개정판을 체크아웃할 수 있도록 바이너리를 기록에 영원히 보관해야 하며 이는 디스크 공간 측면에서 매우 비쌉니다.

또한 바이너리(사진, 영화, 음악 등)가 압축 가능하지 않다고 가정하면 git 개체 저장소의 크기는 트리 체크아웃과 거의 같습니다. 즉, 700GB 상당의 원본 파일에 대해 객체 저장소( .git디렉토리)는 대략 그만큼을 소비하고 커밋을 시작하면 콘텐츠 추가 및 제거 등 더 많은 양을 소비합니다.

객체 저장소에 객체의 마지막 개정판만 보관하지만 얕은 저장소는 복제만 가능하고 커밋할 수는 없는 소위 얕은 복제를 사용할 수 있습니다. 이 경우 마스터 git 저장소는 일반(얕지 않음)이어야 하며 여전히 커야 하지만 모든 얕은 복제본의 크기는 적당합니다.

rsync와 같은 더 간단한 동기화 체계를 유지하는 것이 더 나을 것입니다. 그러나 이 경우 기록을 검토할 수 있는 능력이 상실됩니다. 공짜 점심은 없습니다 :(

답변2

나는 이것이 실제로 귀하의 질문에 대한 대답이 아니라는 것을 알고 있지만... 그렇지 않을 것입니다.재동기화두 폴더를 동기화하는 것이 훨씬 더 쉽나요?

관련 정보