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>...]
반응형