2010-12-07 6 views

답변

37

당신은 아마 submodules 찾고 :

서브 모듈은 외국 저장소는 소스 트리의 전용 서브 디렉토리에 포함 할 수 있도록, 항상 커밋에게 특정 지적했다.

핵심 단어 임베디드이 : Common.git의 실제 복제는 다른 프로젝트의 각각의 내부에 내장 될 것이다. 이것은 일반적으로 다른 프로젝트에서 수정하지 않고 하나의 버전 만 사용하고 원래의 Common.git에서 그 버전을 업데이트 할 때 유용합니다. 서브 모듈의 경로가 저장소에 커밋 위하여려고하고있다

# add Common.git as a submodule at the path "common" inside this repo 
git submodule add /var/Common.git common 
# initialize it, clone, and check out a copy 
git submodule update --init 
# commit the addition of the submodule 
git commit 

주, 그래서 당신은 공개적으로 사용 가능한 URL을 사용한다 : 당신은 같은 것을 할 것입니다. 로컬로 사용자 정의하려면 git submodule init을 실행하고 .git/config에서 URL을 편집 한 다음 git submodule update을 실행하십시오. 추가 질문이있는 경우 맨 페이지를 참조하거나 SO를 검색하십시오. 여기에는 서브 모듈에 관한 많은 질문들이 있습니다.

반면에 각 프로젝트 내에서 Common.git의 내용을 편집하려는 경우 을 사용하는 것이 좋습니다. git의 하위 트리 병합 기능은 친숙한 래퍼입니다. 그러면 common.git의 내용을 각 프로젝트 내부의 추적 된 내용으로 간주 할 수 있지만 커밋을 자체에 병합하고 Common.git 자체에 병합하고 Common.git에 대한 업데이트를 프로젝트에 병합 할 수 있습니다 .

4

git submodule 설계된있는 완벽한 경우가 다음 Project1의 및 Project2에 내 http://git-scm.com/docs/git-submodule

, 당신은 공통의 서브 모듈을 추가 할 수 있습니다. 그리고 나서 당신 git submodule checkout

복제 된 저장소에는 Common git의 해시 만 저장합니다. 그래서 너 git submodule init과 체크 아웃.

관련 문제