Git의 하위 모듈로 원격 리포지토리 복제
Kevin Amayi
2024년2월15일
이 기사에서는 하위 모듈을 사용하여 원격 Git 리포지토리를 복제하는 방법에 대해 설명합니다. 또한 서브모듈을 생성하여 복제하기 전에 원격 저장소에 푸시합니다.
Git의 하위 모듈로 원격 리포지토리 복제
다음 명령을 사용하여 하위 모듈과 함께 저장소를 복제합니다.
git clone --recurse-submodules -j8 git@github.com:KEVINAMAYI/AkanNameGenerator.git
출력:
Cloning into 'AkanNameGenerator'...
remote: Enumerating objects: 108, done.
remote: Counting objects: 100% (14/14), done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 108 (delta 4), reused 3 (delta 1), pack-reused 94
Receiving objects: 100% (108/108), 2.38 MiB | 1.86 MiB/s, done.
Resolving deltas: 100% (29/29), done.
Submodule 'testfolder' (git@github.com:KEVINAMAYI/AkanNameGenerator.git) registered for path 'testfolder'
Cloning into '/home/kevin/tqt/AkanNameGenerator/testfolder'...
remote: Enumerating objects: 108, done.
remote: Counting objects: 100% (14/14), done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 108 (delta 4), reused 3 (delta 1), pack-reused 94
Receiving objects: 100% (108/108), 2.38 MiB | 1.55 MiB/s, done.
Resolving deltas: 100% (29/29), done.
Submodule path 'testfolder': checked out '3300a2aa47ef2c490c19541c6907117511eabe08'
Git에서 복제하기 전에 하위 모듈을 만들고 원격 리포지토리로 푸시
리포지토리를 복제하기 전에 먼저 testfolder
라는 이름의 하위 모듈을 이미 존재하는 로컬 리포지토리에 추가한 다음 변경 사항을 원격 리포지토리에 푸시합니다.
<!-- this commands intializes a submodule with the contents of a remote repo-->
git submodule add <your remote repo url> <name of submodule>
git submodule add git@github.com:KEVINAMAYI/AkanNameGenerator.git testfolder
출력:
Cloning into '/home/kevin/tst/AkanNameGenerator/testfolder'...
remote: Enumerating objects: 105, done.
remote: Counting objects: 100% (11/11), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 105 (delta 3), reused 0 (delta 0), pack-reused 94
Receiving objects: 100% (105/105), 2.38 MiB | 2.06 MiB/s, done.
Resolving deltas: 100% (28/28), done.
다음으로 새 파일을 확인합니다. 목록에 추가 testfolder
가 표시되어야 합니다.
ls
출력:
css images index.html js LICENSE README.md testfolder vendor
그런 다음 방금 변경한 내용을 커밋합니다.
git commit -m "Added the submodule to the project."
출력:
"Added the submodule to the project."
[main 500a12a] Added the submodule to the project.
2 files changed, 4 insertions(+)
create mode 100644 .gitmodules
create mode 160000 testfolder
이 명령을 사용하여 변경 사항을 원격 저장소로 푸시합니다.
git push
출력:
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 429 bytes | 429.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To github.com:KEVINAMAYI/AkanNameGenerator.git
3300a2a..500a12a main -> main
이제 원격 저장소에 testfolder
하위 모듈이 있습니다.
우리는 하위 모듈과 함께 저장소를 복제합니다.
git clone --recurse-submodules -j8 git@github.com:KEVINAMAYI/AkanNameGenerator.git
출력:
Cloning into 'AkanNameGenerator'...
remote: Enumerating objects: 108, done.
remote: Counting objects: 100% (14/14), done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 108 (delta 4), reused 3 (delta 1), pack-reused 94
Receiving objects: 100% (108/108), 2.38 MiB | 1.86 MiB/s, done.
Resolving deltas: 100% (29/29), done.
Submodule 'testfolder' (git@github.com:KEVINAMAYI/AkanNameGenerator.git) registered for path 'testfolder'
Cloning into '/home/kevin/tqt/AkanNameGenerator/testfolder'...
remote: Enumerating objects: 108, done.
remote: Counting objects: 100% (14/14), done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 108 (delta 4), reused 3 (delta 1), pack-reused 94
Receiving objects: 100% (108/108), 2.38 MiB | 1.55 MiB/s, done.
Resolving deltas: 100% (29/29), done.
Submodule path 'testfolder': checked out '3300a2aa47ef2c490c19541c6907117511eabe08'