Git의 submodule 지원을 살펴볼 수 있습니다. 서브 모듈을 사용하면 하나의 git 저장소를 다른 git 저장소에 임베드 할 수 있습니다. 이 종류의 것에 alternative solutions가있다. 그러나 나는 그들 자신을 사용하지 않고 있었다.
예는 다음과 같습니다 당신이 서브 모듈과 저장소를 복제하는 경우
$ git clone git://github.com/username/project.git
$ cd project
$ git submodule add git://github.com/username/framework.git framework
$ git commit -m "added framework submodule"
, 당신은 --recursive
옵션을 사용해야합니다, 당신은 정기적으로 복제 할 수 있습니다
$ git clone --recursive git://<repository-with-submodules>.git
또는 대안을하고 다음을 실행하십시오 :
$ git submodule init
$ git submodule update
링크 된 문서 (및 git submodule --help
)를 참조하십시오. 변경 사항이 서브 모듈을 변경하면
,이처럼 그들을에서 가져 :
# first update the submodule just like any other git repository
$ cd project/framework
$ git pull
# now you have to record the new commit in the parent repository
$ cd ..
$ git commit -m "updated framework submodule"
마지막 단계가 필요한 자식이 (주어진 서브 모듈과 관련된 커밋 특정의 기록을 유지하기 때문에 때 누구 있도록 부모를 복제하면 상위 리포지토리에서 의도 한대로 작동하지 못하게하는 최신 변경 사항이 아닌 최신 버전이 아닌 해당 하위 버전의 하위 모듈을 얻을 수 있습니다. 따라서 하위 모듈을 업데이트하는 경우 부모에 새 커밋을 기록해야합니다.
framework
하위 모듈에서 변경 한 경우 다른 저장소와 마찬가지로 git push
처럼 다시 변경해야합니다. 그런 다음 상위 모듈에서 새 개정을 확약해야합니다.
프레임 워크가 변경되면 프로젝트에 모듈을 추가하려면 어떻게해야합니까? 또한 프로젝트 대신 프레임 워크를 변경하는 경우 어떻게 프레임 워크 git repo로 다시 밀어 넣을 수 있습니까? – Justin
답변을 업데이트했습니다. – larsks
작은 메모가 하나 있습니다. 하위 모듈 HEAD가 분리되어 있으므로 하위 모듈을 변경할 때주의해야합니다. 분기 (또는 분기로 전환)를 만들고, 변경하고, 커밋 한 다음 푸시합니다. – GoZoner