Klonen ein Remote-Repository mit Submodulen in Git

Kevin Amayi 15 Februar 2024
  1. Klonen Sie ein Remote-Repository mit Submodulen in Git
  2. Erstellen ein Submodul und pushen Sie es vor dem Klonen in Git in ein Remote-Repository
Klonen ein Remote-Repository mit Submodulen in Git

In diesem Artikel wird erläutert, wie Sie ein entferntes Git-Repository mit Submodulen klonen. Wir werden auch ein Submodul erstellen und es vor dem Klonen in ein Remote-Repository verschieben.

Klonen Sie ein Remote-Repository mit Submodulen in Git

Wir verwenden den folgenden Befehl, um unser Repository zusammen mit den Submodulen zu klonen.

git clone --recurse-submodules -j8 git@github.com:KEVINAMAYI/AkanNameGenerator.git

Ausgabe:

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'

Erstellen ein Submodul und pushen Sie es vor dem Klonen in Git in ein Remote-Repository

Bevor wir ein Repository klonen, fügen wir zunächst ein Submodul mit dem Namen testfolder zu einem bereits bestehenden lokalen Repository hinzu und pushen dann die Änderungen in ein entferntes Repository.

<!-- 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

Ausgabe:

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.

Als nächstes prüfen wir unsere neuen Dateien. Wir sollten einen zusätzlichen testfolder in der Liste sehen.

ls

Ausgabe:

css  images  index.html  js  LICENSE  README.md  testfolder  vendor

Dann übernehmen wir die Änderungen, die wir gerade vorgenommen haben.

git commit -m "Added the submodule to the project."

Ausgabe:

"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

Wir werden unsere Änderungen mit diesem Befehl in ein Remote-Repository übertragen.

git push

Ausgabe:

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

Jetzt hat unser Remote-Repository das Submodul testfolder.

Klonen Sie ein Repository mit Submodulen

Wir werden unser Repository zusammen mit den Submodulen klonen.

git clone --recurse-submodules -j8 git@github.com:KEVINAMAYI/AkanNameGenerator.git 

Ausgabe:

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'

Verwandter Artikel - Git Clone