답변:
서브 모듈 저장소는 특정 커밋을 가리키는 분리 된 HEAD 상태로 유지됩니다. 해당 커밋을 변경하려면 단순히 다른 태그 또는 커밋을 체크 아웃 한 다음 변경 사항을 상위 저장소에 추가하면됩니다.
$ cd submodule
$ git checkout v2.0
Previous HEAD position was 5c1277e... bumped version to 2.0.5
HEAD is now at f0a0036... version 2.0
git-status
이제 부모 저장소에서 더티 트리를보고합니다.
# On branch dev [...]
#
# modified: submodule (new commits)
하위 모듈 디렉토리를 추가하고 새 포인터를 저장하도록 커밋합니다.
1 단계 : 하위 모듈 추가
git submodule add git://some_repository.git some_repository
2 단계 : 특정 커밋에 하위 모듈 수정
기본적으로 새 하위 모듈은 마스터 브랜치의 HEAD를 추적하지만 기본 저장소를 업데이트 할 때 업데이트되지 않습니다. 특정 커밋 또는 다른 분기를 추적하도록 하위 모듈을 변경하려면 일반 저장소에서와 같이 디렉토리를 하위 모듈 폴더로 변경하고 분기를 전환합니다.
git checkout -b some_branch origin/some_branch
이제 서브 모듈은 마스터의 HEAD 대신 개발 브랜치에서 수정되었습니다.
git submodule add -b some_branch git://some_repository.git some_repository
git submodule add -b
태그 나 sha1hash 를 사용할 수 없는 것 같습니다 . 분기 만 취할 수 있습니다.
-b
태그 나 커밋이 아닌 브랜치를 지원하는 것은 버그가 아닌 기능입니다 (사실 -b
은 약어입니다 --branch
).