Git에서 하위 모듈 제거

Azhar Bashir Khan 2024년2월16일
Git에서 하위 모듈 제거

이 튜토리얼은 git에서 서브모듈을 제거하는 방법을 보여줍니다.

소프트웨어 프로젝트를 개발할 때 우리는 종종 프로젝트에 필요한 외부 프레임워크와 라이브러리를 사용합니다. 이러한 프레임워크와 라이브러리는 오픈 소스일 수 있으며 git 저장소에 보관할 수 있습니다.

이러한 외부 라이브러리의 소스 코드를 git 저장소의 프로젝트 디렉토리에 보관하고 싶을 수 있습니다. git의 하위 모듈 기능을 사용하면 별도의 Git 리포지토리인 외부 소스를 프로젝트 Git 리포지토리의 하위 디렉터리로 유지할 수 있습니다.

그런 다음 더 이상 프로젝트와 관련이 없을 수 있는 Git 하위 모듈을 제거하기로 결정할 수 있습니다.

이제 예를 들어 설명하겠습니다.

Git에서 하위 모듈 제거

소프트웨어 프로젝트에서 작업할 때 라이브러리의 외부 소스를 사용해야 하는 경우가 많습니다. 외부 라이브러리는 타사 또는 다른 팀에서 개발할 수 있습니다.

이러한 외부 라이브러리는 별도의 Git 리포지토리에서 추적할 수 있습니다.

Git의 하위 모듈 기능을 사용하여 이러한 외부 Git 리포지토리를 프로젝트 Git 리포지토리의 하위 디렉터리로 통합할 수 있습니다. 따라서 다른 저장소를 프로젝트에 복제하고 각각의 커밋을 별도로 유지할 수 있습니다.

일반적으로 이러한 외부 라이브러리를 교체하거나 제거할 수 있습니다. 우리 프로젝트에는 더 이상 그러한 외부 라이브러리가 필요하지 않다고 느낄 수 있습니다.

따라서 프로젝트 Git 리포지토리에서 외부 라이브러리를 제거하기로 결정합니다. 이를 위해 외부 라이브러리의 Git 하위 모듈을 제거해야 합니다.

프로젝트 Git 저장소에 good-ext-lib 하위 모듈이 있다고 가정합니다. 이제 good-ext-lib 하위 모듈이 Git 저장소와 파일 시스템에서 제거되기를 원합니다.

하위 모듈을 제거하려면 다음과 같이 Git 명령을 실행해야 합니다.

$ git submodule deinit -f path/to/good-ext-lib

$ rm -rf .git/modules/path/to/good-ext-lib

$ git rm -f path/to/good-ext-lib

git submodule deninit 명령은 good-ext-lib 하위 모듈의 등록을 취소합니다. git/config 파일에서 submodule.$name 섹션 전체를 제거합니다. 또한 하위 모듈의 작업 트리를 제거합니다.

.git 폴더의 good-ext-lib 하위 모듈 경로와 함께 rm -rf 명령은 프로젝트의 .git/modules 디렉터리에서 하위 모듈 디렉터리를 삭제합니다.

프로젝트 디렉토리에 있는 good-ext-lib 하위 모듈의 경로와 함께 git rm 명령은 수퍼 프로젝트(우리 프로젝트)의 추적 데이터를 제거합니다. gitlink 항목을 제거합니다. 또한 .gitmodules 파일에 있는 하위 모듈 섹션을 제거하고 파일을 준비합니다.

마지막으로 다음과 같이 good-ext-lib 하위 모듈을 제거해야 합니다.

$ git commit -m "removed submodule good-ext-lib"

따라서 이제 Git의 프로젝트 디렉토리에서 good-ext-lib 하위 모듈을 제거했습니다.

그래서 우리는 Git에서 서브모듈을 제거하는 방법을 보여주었다.

자세한 내용은 다음을 방문하십시오 -

  1. git-submodule
  2. Git 서브모듈 튜토리얼

관련 문장 - Git Submodule