2012-05-04 16 views
16

Wahrscheinlich sehr dumme Frage, - aber ich habe bisher Submodule in .gitmodules Datei angegeben. Es ist mir vor kurzem aufgefallen, dass es vielleicht möglich ist, .git/config aus dem gleichen Grund zu verwenden, damit ich keine überflüssige Datei im Arbeitsverzeichnis aufbewahren muss?Unterschied zwischen .gitmodules und Angabe von Submodulen in .git/config?

.git/config:

[submodule "path/to/repo"] 
    url = [email protected]:username/repo.git 

.gitmodules

[submodule "path/to/repo"] 
    path = path/to/repo 
    url = [email protected]:username/repo.git 

Sind diese im Grunde die gleichen Dinge?

Antwort

17

Gleiche Antwort als .git/info/exclude und .gitignore.

Die .gitmodules Datei kann im Repository und gemeinsam mit allen aufgenommen werden (das heißt, es kann hinzugefügt und wie jede normale Datei begangen werden), während alles in .git (wie .git/config) ist privat (Sie es in dem nicht hinzufügen Repository).

+3

Was ist, wenn ich verschiedene Repos in .git/config und .gitmodules habe - welche hätte Vorrang? – Stann

9

Die git submodule sync wird Ihre Konfigurationsdatei mit den Details aus der Datei .gitmodules aktualisieren, so dass letzterer als 'Master' betrachtet werden sollte - er wird zwischen Repos übergeben, wie von @ Artefact2 angegeben.

Dies ist nützlich, wenn sich die Submodul-URLs stromaufwärts ändern und Sie Ihre lokalen Repositories entsprechend aktualisieren müssen ( ).

+0

welche würde Vorrang haben, wenn sie verschiedene Repos haben? – Stann

+3

für den 'sync'-Unterbefehl sind es die .gitmodules, die Vorrang haben, aber sehen Sie das Handbuch für die zusätzlichen Bedingungen über diejenigen, die nicht in der Konfiguration aufgeführt sind. –

Verwandte Themen