2011-08-25 4 views
4

사용자가 Git 저장소에서 파일을 가져올 수 있으며 절대 밀어 넣을 수없는 Git 저장소를 만들고 싶습니다. 원격 저장소에 복제 된이 데이터는 수정할 필요가 없기 때문에 공간을 절약하기 위해 기본 저장소에 대한 부드러운 링크를 만드는 것이 좋습니다 (많은 사용자가 데이터를 복제합니다).Git : Git 메인 저장소에 대한 심볼릭 링크를 사용하여 로컬 저장소를 만드는 방법

Git 복제본을 만들 때 로컬 repo에서 원격 저장소의 파일에 대한 소프트 링크를 만들 수 있습니까?

git clone <path>/gitrepo .

... 여기에서 gitrepo은 주 dir이고 명령은 gitrepo를 가리키는 기호 링크로 내 git repo를 작성해야합니다. 버전 제어가 유지되어야합니다. Git pull을 할 때까지, 비록 메인 gitrepo가 ​​앞으로 나아 갔다 할지라도 나의 지역 repo는 유지되어야합니다. git pull은 심볼릭 링크를 다시 만들어서 최신 repo를 가리켜 야합니다. 로컬 복제 할 때

내가

감사합니다, RB

답변

3

힘내는 "ln -s 제어 버전"으로 ln -s을 대체하고자하고는이 자동으로 수행합니다.

--local, -l

에서 복제 할 수있는 저장소가 로컬 컴퓨터에, 이 플래그는 복사를하여 저장소를 정상적인 "자식 인식"전송 메커니즘이 우회 클론 : git clone의 맨 페이지에서 HEAD이고 아래의 모든 것은 객체 및 참조 디렉토리입니다. 가능하면 .git/objects/directory 아래의 파일이 하드 링크되어 공간을 절약합니다. 소스 저장소가 /path/to/repo 구문으로 지정된 경우 이제 기본값이 이되므로 본질적으로 옵션이 없습니다. 하드 링크 대신 을 강제로 복사하려면 ( 저장소를 백업하는 것이 바람직 할 수 있지만) 일반적인 "git 인식"전송 메커니즘 인 --no-hardlinks을 여전히 사용하지 않아야합니다.

또 다른 흥미로운 플래그는 -s 수 있습니다 : 클론의 저장소가 로컬 컴퓨터에있는 경우, 대신 자동으로 설정 .git/objects/info/alternates을 하드 링크를 사용하는 개체를 공유 할 수

--shared, -s

소스 저장소로. 결과 저장소는 자체 개체없이 시작됩니다.

관련 문제