GitNotes.9-6.md
본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

Section 9.6: submodule 제거하기

Version > 1.8

아래 명령어를 통해 특정 submodule (예: the_submodule) 을 제거할 수 있다:

$ git submodule deinit the_submodule $ git rm the_submodule
  • git submodule deinit the_submodule 명령은 the_submodule 항목을 .git/config 항목에서 삭제하게 된다. 이는 the_submodule 을 git submodule updategit submodule sync, git submodule foreach 명령의 수행 대상에서 제외시키며 로컬의 내용물들을 모두 삭제하게 된다. 또한, 이는 부모 저장소에 있어 변경사항으로 표시되지 않게 된다. git submodule initgit submodule update 명령어 수행시 마찬가지로 부모 저장소에 있어 커밋 가능한 변경사항을 야기하지 않으면서도 submodule 내용을 원복시킬 수 있다.
  • git rm the_submodule 명령은 work tree 에서 submodule 을 제거해 준다. submodule 의 파일들 뿐만 아니라 .gitmodules 파일에서의 해당 submodule 항목 역시 삭제될 것이다. 만약 git rm the_submodule 명령만이 수행된다면 (git submodule deinit the_submodule 명령 수행 없이), .git/config 파일 내의 submodule 항목은 유지될 것이다.

Version < 1.8

이곳 에서 발췌됨:

  1. .gitmodules 파일에서 삭제할 submodule 관련 부분을 삭제한다.
  2. git add .gitmodules 명령을 통해 .gitmodules 변경사항을 stage 시킨다
  3. .git/config 파일에서 관련 부분을 삭제한다.
  4. git rm --cached path_to_submodule (맨 끝에 / 붙이지 않음에 유의) 를 수행한다.
  5. rm -rf .git/modules/path_to_submodule 을 수행한다
  6. git commit -m "Removed submodule <name>" 명령어로 커밋을 수행한다
  7. git 에 의해 추적되지 않도록 (untracked) 변경된 파일들을 삭제한다
  8. rm -rf path_to_submodule 을 수행한다

[출처] https://books.goalkicker.com/GitBook/ (CC BY-SA)

반응형

+ Recent posts