English ▾ Themen ▾ Neueste Version ▾ git-submodule zuletzt aktualisiert in 2.52.0

NAME

git-submodule - Submodule initialisieren, aktualisieren oder inspizieren

SYNOPSIS

git submodule [--quiet] [--cached]
git submodule [--quiet] add [<options>] [--] <repository> [<path>]
git submodule [--quiet] status [--cached] [--recursive] [--] [<path>…​]
git submodule [--quiet] init [--] [<path>…​]
git submodule [--quiet] deinit [-f|--force] (--all|[--] <path>…​)
git submodule [--quiet] update [<options>] [--] [<path>…​]
git submodule [--quiet] set-branch [<options>] [--] <path>
git submodule [--quiet] set-url [--] <path> <newurl>
git submodule [--quiet] summary [<options>] [--] [<path>…​]
git submodule [--quiet] foreach [--recursive] <command>
git submodule [--quiet] sync [--recursive] [--] [<path>…​]
git submodule [--quiet] absorbgitdirs [--] [<path>…​]

BESCHREIBUNG

Inspiziert, aktualisiert und verwaltet Submodule.

Weitere Informationen über Submodule finden Sie unter gitsubmodules[7].

BEFEHLE

Ohne Argumente wird der Status vorhandener Submodule angezeigt. Mehrere Unterbefehle stehen zur Verfügung, um Operationen auf den Submodulen auszuführen.

add [-b <branch>] [-f|--force] [--name <name>] [--reference <repository>] [--ref-format <format>] [--depth <depth>] [--] <repository> [<path>]

Fügt das angegebene Repository als Submodul am angegebenen Pfad dem zu committenden Änderungsstapel des aktuellen Projekts hinzu. Das aktuelle Projekt wird als "Superprojekt" bezeichnet.

<repository> ist die URL des Ursprungs-Repositorys des neuen Submoduls. Dies kann entweder eine absolute URL sein oder (wenn es mit ./ oder ../ beginnt) der Speicherort relativ zum Standard-Remote-Repository des Superprojekts (Beachten Sie, dass zur Angabe eines Repositorys *foo.git*, das sich direkt neben einem Superprojekt *bar.git* befindet, Sie ../foo.git anstelle von ./foo.git verwenden müssen – wie man es nach den Regeln für relative URLs erwarten könnte – da die Auswertung relativer URLs in Git identisch mit der von relativen Verzeichnissen ist).

Das Standard-Remote ist das Remote des Remote-Tracking-Branches des aktuellen Branches. Wenn kein solcher Remote-Tracking-Branch existiert oder HEAD getrennt ist, wird "origin" als Standard-Remote angenommen. Wenn das Superprojekt kein konfiguriertes Standard-Remote hat, ist das Superprojekt sein eigenes autoritatives Upstream, und das aktuelle Arbeitsverzeichnis wird stattdessen verwendet.

Das optionale Argument <path> ist der relative Speicherort, an dem das geklonte Submodul im Superprojekt existieren soll. Wenn <path> nicht angegeben ist, wird der kanonische Teil des Quell-Repositorys verwendet ("repo" für "/path/to/repo.git" und "foo" für "host.xz:foo/.git"). Wenn <path> existiert und bereits ein gültiges Git-Repository ist, wird es zum Commit vorgemerkt, ohne es zu klonen. Der <path> wird auch als logischer Name des Submoduls in seinen Konfigurationseinträgen verwendet, es sei denn, --name wird verwendet, um einen logischen Namen anzugeben.

Die angegebene URL wird in .gitmodules aufgezeichnet, damit nachfolgende Benutzer, die das Superprojekt klonen, sie verwenden können. Wenn die URL relativ zum Repository des Superprojekts angegeben wird, wird angenommen, dass die Superprojekt- und Submodul-Repositorys am selben relativen Speicherort zusammengehalten werden, und nur die URL des Superprojekts muss angegeben werden. git-submodule wird das Submodul unter Verwendung der relativen URL in .gitmodules korrekt finden.

Wenn --ref-format <format> angegeben ist, wird das Referenzspeicherformat neu geklonter Submodule entsprechend eingestellt.

status [--cached] [--recursive] [--] [<path>…​]

Zeigt den Status der Submodule an. Dies gibt die SHA-1 des aktuell ausgecheckten Commits für jedes Submodul aus, zusammen mit dem Pfad des Submoduls und der Ausgabe von *git describe* für die SHA-1. Jede SHA-1 wird möglicherweise mit - präfigiert, wenn das Submodul nicht initialisiert ist, +, wenn der aktuell ausgecheckte Submodul-Commit nicht mit der in der Index des enthaltenden Repositorys gefundenen SHA-1 übereinstimmt, und U, wenn das Submodul Merge-Konflikte aufweist.

Wenn --cached angegeben ist, gibt dieser Befehl stattdessen die im Superprojekt aufgezeichnete SHA-1 für jedes Submodul aus.

Wenn --recursive angegeben ist, rekursiert dieser Befehl in verschachtelte Submodule und zeigt auch deren Status an.

Wenn Sie nur an Änderungen der aktuell initialisierten Submodule in Bezug auf den im Index oder HEAD aufgezeichneten Commit interessiert sind, bieten git-status[1] und git-diff[1] diese Informationen ebenfalls (und können auch Änderungen am Arbeitsbaum eines Submoduls melden).

init [--] [<path>…​]

Initialisiert die im Index aufgezeichneten Submodule (die anderswo hinzugefügt und committet wurden), indem submodule.$name.url in .git/config gesetzt wird, wobei dieselbe Einstellung aus .gitmodules als Vorlage verwendet wird. Wenn die URL relativ ist, wird sie mithilfe des Standard-Remotes aufgelöst. Wenn kein Standard-Remote vorhanden ist, wird das aktuelle Repository als Upstream angenommen.

Optionale <path>-Argumente beschränken, welche Submodule initialisiert werden. Wenn kein Pfad angegeben ist und submodule.active konfiguriert wurde, werden als aktiv konfigurierte Submodule initialisiert, andernfalls werden alle Submodule initialisiert.

Es wird auch der Wert von submodule.$name.update, falls in der Datei .gitmodules vorhanden, nach .git/config kopiert, aber (1) dieser Befehl ändert keine vorhandenen Informationen in .git/config und (2) submodule.$name.update, das auf einen benutzerdefinierten Befehl gesetzt ist, wird aus Sicherheitsgründen **nicht** kopiert.

Sie können dann die Submodul-Klon-URLs in .git/config für Ihr lokales Setup anpassen und mit git submodule update fortfahren; Sie können auch einfach git submodule update --init ohne den expliziten *init*-Schritt verwenden, wenn Sie keine Submodul-Speicherorte anpassen möchten.

Siehe den Unterbefehl add für die Definition des Standard-Remotes.

deinit [-f|--force] (--all|[--] <path>…​)

Registriert die angegebenen Submodule ab, d.h. entfernt den gesamten submodule.$name Abschnitt aus .git/config zusammen mit ihren Arbeitsbäumen. Weitere Aufrufe von git submodule update, git submodule foreach und git submodule sync werden nicht registrierte Submodule überspringen, bis sie erneut initialisiert werden. Verwenden Sie diesen Befehl, wenn Sie keine lokale Kopie des Submoduls mehr in Ihrem Arbeitsbaum haben möchten.

Wenn der Befehl ohne Pfadspezifikation ausgeführt wird, gibt er einen Fehler aus, anstatt alles zu deinitialisieren, um Fehler zu vermeiden.

Wenn --force angegeben ist, wird der Arbeitsbaum des Submoduls auch dann entfernt, wenn er lokale Änderungen enthält.

Wenn Sie ein Submodul wirklich aus dem Repository entfernen und committen möchten, verwenden Sie stattdessen git-rm[1]. Siehe gitsubmodules[7] für Entfernungsoptionen.

update [--init] [--remote] [-N|--no-fetch] [--[no-]recommend-shallow] [-f|--force] [--checkout|--rebase|--merge] [--reference <repository>] [--ref-format <format>] [--depth <depth>] [--recursive] [--jobs <n>] [--[no-]single-branch] [--filter <filter-spec>] [--] [<path>…​]

Aktualisiert die registrierten Submodule, um dem zu entsprechen, was das Superprojekt erwartet, indem fehlende Submodule geklont, fehlende Commits in Submodulen geholt und der Arbeitsbaum der Submodule aktualisiert werden. Das "Aktualisieren" kann auf verschiedene Arten erfolgen, abhängig von den Kommandozeilenoptionen und dem Wert der Konfigurationsvariable submodule.<name>.update. Die Kommandozeilenoption hat Vorrang vor der Konfigurationsvariable. Wenn keine davon angegeben ist, wird ein *checkout* durchgeführt. (Hinweis: Was in der Datei .gitmodules steht, ist zu diesem Zeitpunkt irrelevant; siehe git submodule init oben, wie .gitmodules verwendet wird). Die unterstützten *update*-Prozeduren, sowohl von der Kommandozeile als auch über die Konfiguration submodule.<name>.update, sind:

checkout

Der im Superprojekt aufgezeichnete Commit wird im Submodul mit einem getrennten HEAD ausgecheckt.

Wenn --force angegeben ist, wird das Submodul ausgecheckt (mit git checkout --force), auch wenn der im Index des enthaltenden Repositorys angegebene Commit bereits mit dem im Submodul ausgecheckten Commit übereinstimmt.

rebase

Der aktuelle Branch des Submoduls wird auf den im Superprojekt aufgezeichneten Commit rebased.

merge

Der im Superprojekt aufgezeichnete Commit wird in den aktuellen Branch im Submodul gemerged.

Die folgenden Update-Prozeduren haben zusätzliche Einschränkungen:

custom command

Mechanismus zum Ausführen beliebiger Befehle mit der Commit-ID als Argument. Wenn die Konfigurationsvariable submodule.<name>.update auf !custom command gesetzt ist, wird der Objektname des im Superprojekt für das Submodul aufgezeichneten Commits an die Zeichenkette custom command angehängt und ausgeführt. Beachten Sie, dass dieser Mechanismus nicht in der Datei .gitmodules oder auf der Kommandozeile unterstützt wird.

none

Das Submodul wird nicht aktualisiert. Diese Update-Prozedur ist auf der Kommandozeile nicht erlaubt.

Wenn das Submodul noch nicht initialisiert ist und Sie einfach die in .gitmodules gespeicherte Einstellung verwenden möchten, können Sie das Submodul automatisch mit der Option --init initialisieren.

Wenn --recursive angegeben ist, rekursiert dieser Befehl in die registrierten Submodule und aktualisiert auch alle darin enthaltenen verschachtelten Submodule.

Wenn --ref-format <format> angegeben ist, wird das Referenzspeicherformat neu geklonter Submodule entsprechend eingestellt.

Wenn --filter <filter-spec> angegeben ist, wird der angegebene Filter für teilweises Klonen auf das Submodul angewendet. Details zu Filter-Spezifikationen finden Sie unter git-rev-list[1].

set-branch (-b|--branch) <branch> [--] <path>
set-branch (-d|--default) [--] <path>

Legt den Standard-Remote-Tracking-Branch für das Submodul fest. Die Option --branch erlaubt die Angabe des Remote-Branches. Die Option --default entfernt den Konfigurationseintrag submodule.<name>.branch, wodurch der Tracking-Branch auf den Remote *HEAD* zurückfällt.

set-url [--] <path> <newurl>

Setzt die URL des angegebenen Submoduls auf <newurl>. Anschließend synchronisiert es automatisch die Remote-URL-Konfiguration des Submoduls.

summary [--cached|--files] [(-n|--summary-limit) <n>] [commit] [--] [<path>…​]

Zeigt die Commit-Zusammenfassung zwischen dem angegebenen Commit (standardmäßig HEAD) und dem Arbeitsbaum/Index an. Für ein betreffendes Submodul wird eine Reihe von Commits im Submodul zwischen dem angegebenen Superprojekt-Commit und dem Index oder Arbeitsbaum (umgeschaltet durch --cached) angezeigt. Wenn die Option --files angegeben ist, wird die Reihe von Commits im Submodul zwischen dem Index des Superprojekts und dem Arbeitsbaum des Submoduls angezeigt (diese Option erlaubt weder die Verwendung der Option --cached noch die Angabe eines expliziten Commits).

Die Verwendung der Option --submodule=log mit git-diff[1] liefert ebenfalls diese Informationen.

foreach [--recursive] <command>

Evaluiert einen beliebigen Shell-Befehl in jedem ausgecheckten Submodul. Der Befehl hat Zugriff auf die Variablen $name, $sm_path, $displaypath, $sha1 und $toplevel: $name ist der Name des relevanten Submodulabschnitts in .gitmodules, $sm_path ist der Pfad des Submoduls, wie er im direkten Superprojekt aufgezeichnet wurde, $displaypath enthält den relativen Pfad vom aktuellen Arbeitsverzeichnis zum Stammverzeichnis des Submoduls, $sha1 ist der Commit, wie er im direkten Superprojekt aufgezeichnet wurde, und $toplevel ist der absolute Pfad zur obersten Ebene des direkten Superprojekts. Beachten Sie, dass zur Vermeidung von Konflikten mit *<tt>PATH* unter Windows die Variable *$path* nun ein veraltetes Synonym der Variable *<tt>$sm_path* ist. Alle im Superprojekt definierten, aber nicht ausgecheckten Submodule werden von diesem Befehl ignoriert. Sofern nicht --quiet angegeben ist, gibt foreach vor der Auswertung des Befehls den Namen jedes Submoduls aus. Wenn --recursive angegeben ist, werden Submodule rekursiv durchlaufen (d.h. der angegebene Shell-Befehl wird auch in verschachtelten Submodulen ausgewertet). Ein Rückgabewert ungleich Null des Befehls in einem beliebigen Submodul führt zum Abbruch der Verarbeitung. Dies kann durch Hinzufügen von *|| :* am Ende des Befehls überschrieben werden.

Als Beispiel wird der folgende Befehl den Pfad und den aktuell ausgecheckten Commit für jedes Submodul anzeigen.

git submodule foreach 'echo $sm_path `git rev-parse HEAD`'
sync [--recursive] [--] [<path>…​]

Synchronisiert die Remote-URL-Konfigurationseinstellungen der Submodule mit dem in .gitmodules angegebenen Wert. Es werden nur die Submodule betroffen, die bereits einen URL-Eintrag in .git/config haben (was der Fall ist, wenn sie initialisiert oder neu hinzugefügt wurden). Dies ist nützlich, wenn sich Submodul-URLs upstream ändern und Sie Ihre lokalen Repositorys entsprechend aktualisieren müssen.

git submodule sync synchronisiert alle Submodule, während git submodule sync -- A nur das Submodul "A" synchronisiert.

Wenn --recursive angegeben ist, rekursiert dieser Befehl in die registrierten Submodule und synchronisiert auch alle darin enthaltenen verschachtelten Submodule.

absorbgitdirs

Wenn sich ein Git-Verzeichnis eines Submoduls innerhalb des Submoduls befindet, wird das Git-Verzeichnis des Submoduls in den Pfad $GIT_DIR/modules des Superprojekts verschoben und dann das Git-Verzeichnis und sein Arbeitsverzeichnis verbunden, indem core.worktree gesetzt und eine .git-Datei hinzugefügt wird, die auf das im Git-Verzeichnis des Superprojekts eingebettete Git-Verzeichnis verweist.

Ein Repository, das unabhängig geklont und später als Submodul hinzugefügt wurde, oder alte Setups haben das Git-Verzeichnis des Submoduls innerhalb des Submoduls anstatt in das Git-Verzeichnis des Superprojekts eingebettet.

Dieser Befehl ist standardmäßig rekursiv.

OPTIONEN

-q
--quiet

Gibt nur Fehlermeldungen aus.

--progress

Diese Option ist nur für die Befehle add und update gültig. Der Fortschritt wird standardmäßig auf dem Standardfehlerstrom gemeldet, wenn dieser an ein Terminal angeschlossen ist, es sei denn, -q wird angegeben. Dieses Flag erzwingt die Anzeige des Fortschritts, auch wenn der Standardfehlerstrom nicht an ein Terminal umgeleitet ist.

--all

Diese Option ist nur für den Befehl deinit gültig. Registriert alle Submodule im Arbeitsbaum ab.

-b <branch>
--branch <branch>

Branch des Repositorys, der als Submodul hinzugefügt werden soll. Der Name des Branches wird als submodule.<name>.branch in .gitmodules für update --remote aufgezeichnet. Ein Sonderwert von . wird verwendet, um anzuzeigen, dass der Name des Branches im Submodul denselben Namen wie der aktuelle Branch im aktuellen Repository haben soll. Wenn die Option nicht angegeben ist, wird standardmäßig der Remote *HEAD* verwendet.

-f
--force

Diese Option ist nur für die Befehle add, deinit und update gültig. Beim Ausführen von add erlaubt das Hinzufügen eines ansonsten ignorierten Submodulpfads. Diese Option wird auch verwendet, um die Überprüfung zu umgehen, dass der Name des Submoduls nicht bereits verwendet wird. Standardmäßig schlägt *git submodule add* fehl, wenn der vorgeschlagene Name (der vom Pfad abgeleitet wird) bereits für ein anderes Submodul im Repository registriert ist. Die Verwendung von *--force* erlaubt dem Befehl, fortzufahren, indem automatisch ein eindeutiger Name durch Anhängen einer Nummer an den widersprüchlichen Namen generiert wird (z.B. wenn ein Submodul namens *child* existiert, wird *child1* usw. versucht). Beim Ausführen von deinit werden die Arbeitsbäume der Submodule auch dann entfernt, wenn sie lokale Änderungen enthalten. Beim Ausführen von update (nur wirksam mit der checkout-Prozedur) werden lokale Änderungen in Submodulen verworfen, wenn zu einem anderen Commit gewechselt wird; und es wird immer ein checkout-Vorgang im Submodul ausgeführt, auch wenn der im Index des enthaltenden Repositorys aufgeführte Commit mit dem im Submodul ausgecheckten Commit übereinstimmt.

--cached

Diese Option ist nur für die Befehle status und summary gültig. Diese Befehle verwenden typischerweise den im Submodul HEAD gefundenen Commit, aber mit dieser Option wird stattdessen der im Index gespeicherte Commit verwendet.

--files

Diese Option ist nur für den Befehl summary gültig. Dieser Befehl vergleicht den Commit im Index mit dem im Submodul HEAD, wenn diese Option verwendet wird.

-n
--summary-limit

Diese Option ist nur für den Befehl summary gültig. Begrenzt die Größe der Zusammenfassung (Anzahl der angezeigten Commits insgesamt). Die Angabe von 0 deaktiviert die Zusammenfassung; eine negative Zahl bedeutet unbegrenzt (Standard). Diese Begrenzung gilt nur für geänderte Submodule. Die Größe ist immer auf 1 für hinzugefügte/gelöschte/typgewechselte Submodule begrenzt.

--remote

Diese Option ist nur für den Befehl update gültig. Anstatt die vom Superprojekt aufgezeichnete SHA-1 zur Aktualisierung des Submoduls zu verwenden, wird der Status des Remote-Tracking-Branches des Submoduls verwendet. Das verwendete Remote ist das Remote des Branches (branch.<name>.remote), standardmäßig origin. Der verwendete Remote-Branch ist standardmäßig der Remote *HEAD*, aber der Branch-Name kann durch Setzen der Option submodule.<name>.branch entweder in .gitmodules oder .git/config überschrieben werden (wobei .git/config Vorrang hat).

Dies funktioniert für jede der unterstützten Update-Prozeduren (--checkout, --rebase, etc.). Die einzige Änderung ist die Quelle der Ziel-SHA-1. Zum Beispiel wird submodule update --remote --merge Upstream-Submoduländerungen in die Submodule mergen, während submodule update --merge Superprojekt-Gitlink-Änderungen in die Submodule mergen wird.

Um einen aktuellen Tracking-Branch-Status sicherzustellen, holt update --remote das Remote-Repository des Submoduls, bevor die SHA-1 berechnet wird. Wenn Sie nicht fetchen möchten, sollten Sie submodule update --remote --no-fetch verwenden.

Verwenden Sie diese Option, um Änderungen vom Upstream-Subprojekt mit dem aktuellen HEAD Ihres Submoduls zu integrieren. Alternativ können Sie git pull aus dem Submodul ausführen, was äquivalent ist, außer für den Namen des Remote-Branches: update --remote verwendet das Standard-Upstream-Repository und submodule.<name>.branch, während git pull den branch.<name>.merge des Submoduls verwendet. Bevorzugen Sie submodule.<name>.branch, wenn Sie den Standard-Upstream-Branch mit dem Superprojekt verteilen möchten, und branch.<name>.merge, wenn Sie beim Arbeiten im Submodul selbst ein nativeres Gefühl wünschen.

-N
--no-fetch

Diese Option ist nur für den Befehl update gültig. Holt keine neuen Objekte von der Remote-Seite.

--checkout

Diese Option ist nur für den Befehl update gültig. Checkt den im Superprojekt aufgezeichneten Commit mit einem getrennten HEAD im Submodul aus. Dies ist das Standardverhalten. Der Hauptzweck dieser Option ist es, submodule.$name.update zu überschreiben, wenn dieser auf einen anderen Wert als checkout gesetzt ist. Wenn der Schlüssel submodule.$name.update entweder nicht explizit gesetzt ist oder auf checkout gesetzt ist, ist diese Option implizit.

--merge

Diese Option ist nur für den Befehl update gültig. Mergt den im Superprojekt aufgezeichneten Commit in den aktuellen Branch des Submoduls. Wenn diese Option gegeben ist, wird der HEAD des Submoduls nicht getrennt. Wenn ein Merge-Fehler diesen Prozess verhindert, müssen Sie die resultierenden Konflikte innerhalb des Submoduls mit den üblichen Werkzeugen zur Konfliktlösung beheben. Wenn der Schlüssel submodule.$name.update auf merge gesetzt ist, ist diese Option implizit.

--rebase

Diese Option ist nur für den Befehl update gültig. Rebased den aktuellen Branch auf den im Superprojekt aufgezeichneten Commit. Wenn diese Option gegeben ist, wird der HEAD des Submoduls nicht getrennt. Wenn ein Merge-Fehler diesen Prozess verhindert, müssen Sie diese Fehler mit git-rebase[1] beheben. Wenn der Schlüssel submodule.$name.update auf rebase gesetzt ist, ist diese Option implizit.

--init

Diese Option ist nur für den Befehl update gültig. Initialisiert alle Submodule, für die "git submodule init" bisher nicht aufgerufen wurde, bevor aktualisiert wird.

--name

Diese Option ist nur für den Befehl add gültig. Sie setzt den Namen des Submoduls auf die gegebene Zeichenkette anstelle des Standardpfads. Der Name muss als Verzeichnisname gültig sein und darf nicht mit einem */* enden.

--reference <repository>

Diese Option ist nur für die Befehle add und update gültig. Diese Befehle müssen manchmal ein Remote-Repository klonen. In diesem Fall wird diese Option an den Befehl git-clone[1] weitergegeben.

HINWEIS: Verwenden Sie diese Option **nicht**, es sei denn, Sie haben die Hinweise zu git-clone[1]'s Optionen --reference, --shared und --dissociate sorgfältig gelesen.

--dissociate

Diese Option ist nur für die Befehle add und update gültig. Diese Befehle müssen manchmal ein Remote-Repository klonen. In diesem Fall wird diese Option an den Befehl git-clone[1] weitergegeben.

HINWEIS: siehe die HINWEISE zur Option --reference.

--recursive

Diese Option ist nur für die Befehle foreach, update, status und sync gültig. Durchläuft Submodule rekursiv. Die Operation wird nicht nur in den Submodulen des aktuellen Repos ausgeführt, sondern auch in allen verschachtelten Submodulen innerhalb dieser Submodule (und so weiter).

--depth

Diese Option ist für die Befehle add und update gültig. Erstellt einen *flachen* Klon mit einer auf die angegebene Anzahl von Revisionen gekürzten Historie. Siehe git-clone[1].

--recommend-shallow
--no-recommend-shallow

Diese Option ist nur für den Befehl update gültig. Der initiale Klon eines Submoduls verwendet standardmäßig den empfohlenen Wert von submodule.<name>.shallow, wie er von der Datei .gitmodules bereitgestellt wird. Um die Vorschläge zu ignorieren, verwenden Sie --no-recommend-shallow.

-j <n>
--jobs <n>

Diese Option ist nur für den Befehl update gültig. Klont neue Submodule parallel mit so vielen Jobs. Standardmäßig wird die Option submodule.fetchJobs verwendet.

--single-branch
--no-single-branch

Diese Option ist nur für den Befehl update gültig. Klont nur einen Branch während des Updates: HEAD oder einen, der mit --branch angegeben wurde.

<path>…​

Pfade zu Submodul(en). Wenn angegeben, beschränkt dies den Befehl auf die Operationen nur auf den Submodulen, die an den angegebenen Pfaden gefunden wurden. (Dieses Argument ist bei add erforderlich).

DATEIEN

Beim Initialisieren von Submodulen wird eine Datei .gitmodules im obersten Verzeichnis des enthaltenden Repositorys verwendet, um die URL jedes Submoduls zu finden. Diese Datei sollte im selben Format wie $GIT_DIR/config formatiert sein. Der Schlüssel zu jeder Submodul-URL ist "submodule.$name.url". Weitere Details finden Sie unter gitmodules[5].

GIT

Teil der git[1] Suite