Git 편집하기
편집을 되돌릴 수 있습니다.
이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 | 당신의 편집 | ||
94번째 줄: | 94번째 줄: | ||
== submodule == | == submodule == | ||
− | 서브모듈은 독립적인 저장소이다. | + | https://git-scm.com/book/ko/v2/Git-도구-서브모듈 |
+ | |||
+ | 서브모듈은 독립적인 저장소이다. | ||
메인 프로젝트를 복제한 경우 각 서브모듈별로 업데이트해야 파일을 받는다. | 메인 프로젝트를 복제한 경우 각 서브모듈별로 업데이트해야 파일을 받는다. | ||
100번째 줄: | 102번째 줄: | ||
서브모듈을 수정한 경우엔 master branch로 전환한 후 변경사항을 push한 후에 메인 프로젝트를 push해야한다. | 서브모듈을 수정한 경우엔 master branch로 전환한 후 변경사항을 push한 후에 메인 프로젝트를 push해야한다. | ||
− | + | === add === | |
− | |||
− | |||
− | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
$ git submodule add https://github.com/myid/myproject.git | $ git submodule add https://github.com/myid/myproject.git | ||
110번째 줄: | 109번째 줄: | ||
서브모듈의 버전(해시)은 별도의 파일에 저장된다. 메인모듈을 새로 clone하는 경우 서브모듈은 clone되지 않는다. 추가명령으로 받아야 한다. | 서브모듈의 버전(해시)은 별도의 파일에 저장된다. 메인모듈을 새로 clone하는 경우 서브모듈은 clone되지 않는다. 추가명령으로 받아야 한다. | ||
− | + | === init === | |
먼저 git submodule init 명령을 실행하면 서브모듈 정보를 기반으로 로컬 환경설정 파일이 준비된다. 이후 git submodule update 명령으로 서브모듈의 리모트 저장소에서 데이터를 가져오고 서브모듈을 포함한 프로젝트의 현재 스냅샷에서 Checkout 해야 할 커밋 정보를 가져와서 서브모듈 프로젝트에 대한 Checkout을 한다. | 먼저 git submodule init 명령을 실행하면 서브모듈 정보를 기반으로 로컬 환경설정 파일이 준비된다. 이후 git submodule update 명령으로 서브모듈의 리모트 저장소에서 데이터를 가져오고 서브모듈을 포함한 프로젝트의 현재 스냅샷에서 Checkout 해야 할 커밋 정보를 가져와서 서브모듈 프로젝트에 대한 Checkout을 한다. | ||
간단하게 실행하는 방법도 있다. 메인 프로젝트를 clone할 때 [[Git#clone|git clone]] 명령 뒤에 --recurse-submodules 옵션을 붙이면 서브모듈을 자동으로 초기화하고 업데이트한다. | 간단하게 실행하는 방법도 있다. 메인 프로젝트를 clone할 때 [[Git#clone|git clone]] 명령 뒤에 --recurse-submodules 옵션을 붙이면 서브모듈을 자동으로 초기화하고 업데이트한다. | ||
− | + | === update === | |
원격 저장소에서 파일을 가져온다. 최신버전을 가지고 오는 것이 아니다. | 원격 저장소에서 파일을 가져온다. 최신버전을 가지고 오는 것이 아니다. | ||
129번째 줄: | 128번째 줄: | ||
$ git submodule update --init | $ git submodule update --init | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== 서브모듈의 버전 관리 === | === 서브모듈의 버전 관리 === | ||
145번째 줄: | 137번째 줄: | ||
</syntaxhighlight>임시 브랜치를 삭제하려면 git [[Git#branch|branch]]명령을 사용할 수 있다. | </syntaxhighlight>임시 브랜치를 삭제하려면 git [[Git#branch|branch]]명령을 사용할 수 있다. | ||
− | === | + | === deinit === |
− | + | $ git submodule deinit [모듈] | |
+ | .git/modules와 소스폴더 삭제 | ||
+ | $ rm -rf .git/modules/[모듈] | ||
+ | |||
+ | $ rm -rf [모듈] | ||
== Git Hooks == | == Git Hooks == |