[git] 자식 리포지토리에서 종속성을 어떻게 연결할 수 있습니까?

내 스크립트에서 나는 종종 자신의 저장소가있는 라이브러리 (광산 또는 다른 사람)를 사용합니다. 내 리포지토리에서 복제하고 새 버전이 나올 때마다 업데이트하지 않으려 고합니다. 그러나 누군가가 저장소를 복제 할 때 여전히 로컬에서 작동하며 끊어진 링크가 없어야합니다.

내가 할 수있는 일에 대한 아이디어가 있습니까?



답변

git의 하위 모듈 로이 작업을 수행 할 수 있습니다. 저장소에서 다음을 수행하십시오.

git submodule add path_to_repo path_where_you_want_it

따라서 라이브러리의 저장소에 URL이 git://github.com/example/some_lib.git있고 lib/some_lib프로젝트 에서 URL 을 원하면 다음을 입력하십시오.

git submodule add git://github.com/example/some_lib.git lib/some_lib

이 작업은 리포지토리의 최상위 디렉터리에서 수행해야합니다. 따라서 cd먼저 디렉토리에 넣지 마십시오 .

하위 모듈을 추가 한 후 또는 누군가 저장소를 새로 체크 아웃 할 때마다 다음을 수행해야합니다.

git submodule init
git submodule update

그런 다음 추가 한 모든 하위 모듈이 동일한 버전으로 체크 아웃됩니다.

라이브러리 중 하나의 최신 버전으로 업데이트 cd하려면 하위 모듈로 이동하여 다음을 수행하십시오.

cd lib/some_lib
git pull

그런 다음, 당신이 할 때 git status당신은 참조해야 lib/somelib수정 된 섹션에 나열된. 해당 파일을 추가하고 커밋하면 최신 상태입니다. 공동 작업자가 해당 커밋을 저장소로 가져 오면 다시 lib/somelib실행될 때까지 수정 된 것으로 표시 됩니다 git submodule update.


답변