2015-09-08 6 views
5

Ich brauche den Befehl auszuführen:setzen ein Git Config rekursiv für alle Submodule

git config core.filemode false 

Das Problem ist, dass ich ein paar Projekte mit mindestens zehn Submodule haben je. Aus irgendeinem Grund haben alle Untermodule diesen Wert auf "true" gesetzt, sodass ich diese Konfiguration manuell entfernen/aktualisieren müsste.

Gibt es eine Möglichkeit Git anweisen, einen Konfigurationswert für alle Submodule zu setzen?

oder aus der Submodule entfernen, so dass die Einstellungen des enthält Repo nicht überschrieben werden?

Antwort

6

Sie können den git submodule foreach Befehl: https://www.kernel.org/pub/software/scm/git/docs/v1.6.1.3/git-submodule.html

Sie können einen beliebigen Shell-Befehl als Parameter zur Verfügung stellen, in Ihrem Fall so etwas wie diese:

git submodule foreach --recursive git config core.filemode false 

Dies wird git config core.filemode false ausführen in jedem die Submodule des aktuellen Git Repo.

+0

Dies kann auf viele Dinge angewendet werden, perfekt, danke! –

+1

Dies gilt nicht für Submodule in der Tiefe ≥ 2 (Submodule von Submodulen ..) daher muss '--recursive' hinzugefügt werden →' git Submodul foreach --rekursive git config core.filemode false'. – wottpal

+0

Danke, zur Antwort hinzugefügt. – nwinkler