Git 저장소의 디렉토리를 하위 모듈로 전환하는 방법

Git 저장소의 디렉토리를 하위 모듈로 전환하는 방법

Git 하위 모듈은 리포지토리 내의 리포지토리와 같아서 모듈의 버전 제어를 프로젝트 자체에 연결하지 않고도 프로젝트에 외부 코드 라이브러리 또는 종속성을 포함할 수 있습니다. 이렇게 하면 모듈이 분리되어 업데이트하기 쉽고 디렉토리를 새 하위 모듈로 쉽게 변환할 수 있습니다.

Git의 하위 모듈이란 무엇입니까?

하위 모듈은 다른 Git 리포지토리에 포함된 Git 리포지토리입니다. 이렇게 하면 자체 버전 제어를 계속 유지하면서 다른 프로젝트의 코드를 종속성으로 포함할 수 있습니다.

상위 리포지토리를 복제하면 하위 모듈 리포지토리도 자동으로 복제됩니다. 이는 하위 모듈의 코드와 Git 기록이 기본 버전 제어와 별도로 유지되며 라이브러리를 사용하는 여러 리포지토리에 대해 업데이트될 수 있음을 의미합니다.

하위 모듈의 대안은 NPM, Maven 또는 NuGet과 같은 패키지 관리자에 라이브러리를 패키지로 게시하는 것입니다. 그러나 이것은 모든 유형의 프로젝트에서 작동하지 않으며 개인 코드로 작업하는 경우 개인 패키지 레지스트리를 설정해야 합니다. 이는 단순히 라이브러리의 소스 코드를 하위 모듈로 포함하는 것보다 더 복잡할 수 있습니다. .

디렉토리를 하위 모듈로 전환하는 방법

첫 번째 단계는 하위 모듈에 대한 새 리포지토리를 만드는 것입니다. 이것은 일반적으로 GitHub 와 같은 Git 호스팅 서비스에 있지만 컴퓨터에 로컬 리포지토리를 만들 수 있습니다.

다음으로 하위 모듈 저장소를 만들기 위해 기본 저장소의 새 복사본을 가져와야 합니다.

git clone git@github.com:username/repository.git submodule-repo

cd submodule-repo git filter-branch --subdirectory-filter submoduledirectory -- --all

이 모듈 디렉토리의 원격 URL을 일반적으로 “origin”이라는 새 하위 모듈 리포지토리로 변경하고 싶을 것입니다.

git remote set-url origin https://github.com/new-repository.git

그런 다음 평소처럼 기록을 푸시할 수 있습니다.

git push -u origin main

새 하위 모듈 추가

기본 프로젝트로 돌아가서 하위 모듈을 추가하고 싶을 것입니다.

먼저 상위 저장소에서 하위 모듈로 전환하려는 디렉토리 추적을 중지해야 합니다. 그것은 여전히 ​​Git의 버전 기록에 있을 것이며 어쨌든 새 모듈 저장소에 추가했습니다.

rm -rf directory_name

다음으로, 다음 명령을 사용하여 Github에서 생성한 하위 모듈 리포지토리의 원격 URL을 추가할 수 있습니다 git submodule add.

git submodule add git@github.com:username/repository.git directory_name

이 명령을 실행하면 Git은 상위 리포지토리에 새 하위 모듈 디렉터리를 만들고 이 디렉터리에 하위 모듈 리포지토리를 복제합니다. 또한 모듈 폴더 추적을 다시 시작합니다.

하위 모듈을 업데이트하려면 다음 명령을 사용할 수 있습니다 git submodule update.

git submodule update --remote submodule_name

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다