다음은 관찰 된 동작을 재현하기 위해 실행될 bash 명령을 설명합니다. 이들이 msysgit
을 통해 실행되었지만 결과가 * nix 환경에서 유사해야합니다.로컬 파일을 전달할 때 "git clone"이 객체 데이터베이스를 압축하는 이유는 무엇입니까? /// url?
설정 소스 저장소
$ mkdir main && cd main
$ git init .
Initialized empty Git repository in d:/temp/main/.git/
$ echo a > a.txt
$ git add . && git commit -m "Initial commit"
[master (root-commit) e1ec355] Initial commit
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 a.txt
복제 로컬 파일을 사용하여 소스 저장소 : /// URL
$ cd ..
$ mkdir clonefromfileurl && cd clonefromfileurl
$ git clone file:///d:/temp/main
Cloning into 'main'...
remote: Counting objects: 3, done.
Receiving objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
복제 로컬 파일 경로을 사용하여 소스 저장소
$ cd ..
$ mkdir clonefrompath && cd clonefrompath
$ git clone /d:/temp/main
Cloning into 'main'...
done.
Wikipedia에 따르면, 파일 슬래시가있는 url은 로컬 리소스를 의미합니다.
그러나 로컬 file:///
URL을 통해 복제하면 개체 데이터베이스가 전송 (복사?)되기 전에 압축됩니다. 원본 저장소의 위치가 로컬 경로로 표시되는 경우에는 해당되지 않습니다.
왜 원본과 대상 저장소가 모두 localhost
에 호스팅되어 있다는 점을 감안할 때 git는 다른 방식으로 동작합니까? 자식 클론 교재
답장을 보내 주셔서 감사합니다. 불행히도'git clone -l file : /// d :/temp/main' 또는'git clone --local file : /// d :/temp/main'을 사용하여 여전히 packfile을 처리하고 전송합니다. 이 문제를 재현 할 수 있습니까? – nulltoken