Git
[Git] submodule
permitroot
2022. 9. 7. 16:53
반응형
▪ Synopsis
Git Submodule을 사용하여 많은 다른 라이브러리에 대해 dependency를 가지게 되는 대규모 프로젝트를 관리하는 경우가 있다.
저장소를 처음 check out 하는 경우 --init을 먼저 사용해야합니다.
$ git submodule update --init --recursive
git 1.8.2 이상의 경우 원격 분기의 최신 팁 업데이트를 지원하기 위해 --remote를 추가합니다.
$ git submodule update --recursive --remote
git 1.7.3 이상의 경우 다음을 사용 할 수 있습니다.
$ git pull --recurse-submodules
▪ Usage
서브 모듈 추가
$ git submodule add <서브모듈 URL> <디렉토리>
새로운 서브모듈을 현재 프로젝트에 추가합니다. <서브모듈 URL>은 서브모듈의 Git 저장소 URL이며, <디렉토리>는 서브모듈을 저장할 로컬 디렉토리입니다.
서브 모듈 초기화
$ git submodule init
서브 모듈 업데이트
$ git submodule update
서브 모듈 재지정
$ git submodule update --remote <서브모듈명>
서브 모듈 제거
$ git submodule deinit -f -- <서브모듈명>
$ rm -rf .git/modules/<서브모듈명>
$ git rm -f <서브모듈명>
서브 모듈 로그 확인
$ cd <서브모듈디렉토리>
$ git log
서브 모듈 도움말 확인
$ git submodule --help
usage: git Submodule [--quiet] [--cached]
or: git Submodule [--quiet] add [-b <branch>] [-f|--force] [--name <name>] [--reference <repository>] [--] <repository> [<path>]
or: git Submodule [--quiet] status [--cached] [--recursive] [--] [<path>...]
or: git Submodule [--quiet] init [--] [<path>...]
or: git Submodule [--quiet] deinit [-f|--force] (--all| [--] <path>...)
or: git Submodule [--quiet] update [--init] [--remote] [-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--[no-]recommend-shallow] [--reference <repository>] [--recursive] [--[no-]single-branch] [--] [<path>...]
or: git Submodule [--quiet] set-branch (--default|--branch <branch>) [--] <path>
or: git Submodule [--quiet] set-url [--] <path> <newurl>
or: git Submodule [--quiet] summary [--cached|--files] [--summary-limit <n>] [commit] [--] [<path>...]
or: git Submodule [--quiet] foreach [--recursive] <command>
or: git Submodule [--quiet] sync [--recursive] [--] [<path>...]
or: git Submodule [--quiet] absorbgitdirs [--] [<path>...]
반응형