English ▾ Themen ▾ Neueste Version ▾ gitmodules zuletzt aktualisiert in 2.42.0

NAME

gitmodules - Definition von Submodul-Eigenschaften

SYNOPSIS

$GIT_WORK_TREE/.gitmodules

BESCHREIBUNG

Die Datei .gitmodules, die sich im Stammverzeichnis eines Git-Arbeitsbaums befindet, ist eine Textdatei mit einer Syntax, die den Anforderungen von git-config[1] entspricht.

Die Datei enthält pro Submodul einen Unterabschnitt, und der Wert des Unterabschnitts ist der Name des Submoduls. Der Name wird auf den Pfad gesetzt, in dem das Submodul hinzugefügt wurde, es sei denn, er wurde mit der Option --name von git submodule add angepasst. Jeder Submodulabschnitt enthält auch die folgenden erforderlichen Schlüssel

submodule.<name>.path

Definiert den Pfad relativ zum Stammverzeichnis des Git-Arbeitsbaums, in dem das Submodul ausgecheckt werden soll. Der Pfadname darf nicht mit einem / enden. Alle Submodulpfade müssen innerhalb der .gitmodules Datei eindeutig sein.

submodule.<name>.url

Definiert eine URL, von der das Submodul-Repository geklont werden kann. Dies kann entweder eine absolute URL sein, die direkt an git-clone[1] übergeben werden kann, oder (wenn sie mit ./ oder ../ beginnt) ein Ort relativ zum Ursprungs-Repository des Superprojekts.

Zusätzlich gibt es eine Reihe von optionalen Schlüsseln

submodule.<name>.update

Definiert das Standard-Update-Verfahren für das benannte Submodul, d. h. wie das Submodul durch den Befehl git submodule update im Superprojekt aktualisiert wird. Dies wird nur von git submodule init verwendet, um die gleichnamige Konfigurationsvariable zu initialisieren. Zulässige Werte sind hier checkout, rebase, merge oder none, aber nicht !command (aus Sicherheitsgründen). Weitere Details finden Sie in der Beschreibung des update-Befehls in git-submodule[1].

submodule.<name>.branch

Ein Remote-Branch-Name zur Verfolgung von Updates im Upstream-Submodul. Wenn die Option nicht angegeben ist, wird standardmäßig der Remote HEAD verwendet. Ein spezieller Wert von . wird verwendet, um anzuzeigen, dass der Name des Branches im Submodul derselbe Name wie der aktuelle Branch im aktuellen Repository sein soll. Details finden Sie in der Dokumentation zu --remote in git-submodule[1].

submodule.<name>.fetchRecurseSubmodules

Diese Option kann verwendet werden, um das rekursive Abrufen dieses Submoduls zu steuern. Wenn diese Option auch im Eintrag des Submoduls in .git/config des Superprojekts vorhanden ist, überschreibt die dortige Einstellung diejenige, die in .gitmodules gefunden wurde. Beide Einstellungen können auf der Kommandozeile durch die Option --[no-]recurse-submodules zu git fetch und git pull überschrieben werden.

submodule.<name>.ignore

Definiert, unter welchen Umständen git status und die Diff-Familie ein Submodul als modifiziert anzeigen. Folgende Werte werden unterstützt

all

Das Submodul wird niemals als modifiziert betrachtet (wird aber dennoch in der Ausgabe von Status und Commit angezeigt, wenn es gestaged wurde).

dirty

Alle Änderungen im Arbeitsbaum des Submoduls werden ignoriert. Nur committete Unterschiede zwischen dem HEAD des Submoduls und seinem aufgezeichneten Zustand im Superprojekt werden berücksichtigt.

untracked

Nur nicht verfolgte Dateien in Submodulen werden ignoriert. Committete Unterschiede und Änderungen an verfolgten Dateien werden angezeigt.

none

Es werden keine Änderungen an Submodulen ignoriert. Alle committeten Unterschiede sowie Änderungen an verfolgten und nicht verfolgten Dateien werden angezeigt. Dies ist die Standardoption.

Wenn diese Option auch im Eintrag des Submoduls in .git/config des Superprojekts vorhanden ist, überschreibt die dortige Einstellung diejenige, die in .gitmodules gefunden wurde.

Beide Einstellungen können auf der Kommandozeile durch die Option --ignore-submodules überschrieben werden. Die git submodule-Befehle werden von dieser Einstellung nicht beeinflusst.

submodule.<name>.shallow

Wenn auf true gesetzt, wird ein Klon dieses Submoduls als flacher Klon (mit einer Historientiefe von 1) durchgeführt, es sei denn, der Benutzer fordert explizit einen nicht-flachen Klon an.

ANMERKUNGEN

Git erlaubt nicht, dass die .gitmodules Datei innerhalb eines Arbeitsbaums ein symbolischer Link ist, und weigert sich, solche Baum-Einträge auszuchecken. Dies hält das Verhalten konsistent, wenn die Datei aus dem Index oder einem Baum im Gegensatz zum Dateisystem zugegriffen wird, und hilft Git, Sicherheitsüberprüfungen des Dateiinhalts zuverlässig durchzusetzen.

BEISPIELE

Betrachten Sie die folgende .gitmodules Datei

[submodule "libfoo"]
	path = include/foo
	url = git://foo.com/git/lib.git

[submodule "libbar"]
	path = include/bar
	url = git://bar.com/git/lib.git

Dies definiert zwei Submodule, libfoo und libbar. Diese sollen in den Pfaden include/foo und include/bar ausgecheckt werden, und für beide Submodule ist eine URL angegeben, die zum Klonen der Submodule verwendet werden kann.

GIT

Teil der git[1] Suite