본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.
Section 9.2: submodule 갱신 (update) 하기
submodule 은 다른 저장소의 특정 커밋을 참조하게 되어있다. 모든 submodule 들에 대해 참조 중인 상태로의 checkout 을 수행하려면, 다음과 같은 명령어를 이용한다.
git submodule update --recursive
가끔씩은 submodule 이 참조 중인 상태를 이용하기보다 원격 저장소에서 가장 최신 상태를 update 해오고 싶을때가 있다. 하나의 명령어를 사용하여 모든 submodule 을 원격 저장소의 가장 최신 상태로 update 하려면 아래와 같이 수행한다.
git submodule foreach git pull <remote> <branch>
혹은, git pull
의 기본 인자를 사용할 수 있다
git submodule foreach git pull
유의할 점은, 위 명령어들은 사용자의 로컬 작업본만을 갱신할 것이라는 점이다. 만약 submodule 디렉토리의 내용이 이 명령으로 인해 변경되었다면, git status
명령으로 확인 시 수정된 것으로 (dirty) 표시될 것이다.
사용자의 저장소에서 새로운 상태를 참조하도록 업데이트 하려면, 현재의 변경사항을 커밋하는 작업이 필요하다:
git add <submodule_directory>
git commit
사용자 저장소의 변경 사항이 git pull
을 수행했을 때 merge conflict 을 유발하는 경우가 종종 있으므로, 많은 경우에 conflict 의 가능성을 줄여주는 git pull --rebase
를 통해 사용자의 변경사항이 가장 최신 커밋 이후에 반영되도록 한다.
git submodule foreach git pull --rebase
하나의 특정 submodule 에 대해서만 최신 상태로 update 하기 위해서는 아래와 같은 명령어를 수행할 수 있다:
git submodule update --remote <submodule_directory>
[출처] https://books.goalkicker.com/GitBook/ (CC BY-SA)
반응형
'번역 > Git Notes for Professionals' 카테고리의 다른 글
9.4: submodule 로 하여금 특정 브랜치를 추적 (follow) 하도록 하기 (0) | 2019.10.15 |
---|---|
9.3: submodule 추가하기 (0) | 2019.10.14 |
9.1: submodule 을 포함하는 git 저장소를 clone 하기 (0) | 2019.10.12 |
8.6: 하나의 브랜치를 다른 브랜치로 merge 하기 (0) | 2019.10.12 |
8.5: merge 시에 특정 한쪽의 변경사항만 반영하기 (0) | 2019.10.11 |