이것은 DEV 패키지 저장소와 LIVE 패키지 저장소가있는 GIT v1.7.1을 실행하는 라이브러리에서 작동합니다. 리포지토리 자체는 프로젝트의 자산을 패키징하는 쉘에 지나지 않습니다. 모든 서브 모듈.
LIVE는 의도적으로 업데이트되지 않지만 캐시 파일이나 사고가 발생하여 저장소가 더러워집니다. DEV에 추가 된 새 하위 모듈도 LIVE 내에서 초기화해야합니다.
DEV의 패키지 리포지토리
여기서 우리는 아직 알지 못하는 모든 업스트림 변경 사항을 가져오고 패키지 저장소를 업데이트합니다.
# Recursively reset to the last HEAD
git submodule foreach --recursive git reset --hard
# Recursively cleanup all files and directories
git submodule foreach --recursive git clean -fd
# Recursively pull the upstream master
git submodule foreach --recursive git pull origin master
# Add / Commit / Push all updates to the package repo
git add .
git commit -m "Updates submodules"
git push
LIVE의 패키지 리포지토리
여기서는 DEV 리포지토리에 커밋되었지만 변경 사항을 알 수없는 업스트림 변경 사항을 가져옵니다.
# Pull changes
git pull
# Pull status (this is required for the submodule update to work)
git status
# Initialize / Update
git submodule update --init --recursive
git reset --hard
없는 작업과 원격 지점을 지정하는 첫 번째 시도를하지 않습니다git reset --hard origin/<branch_name>
.