Ist es möglich, Git auf eine bestehende .gitmodules-Datei aufmerksam zu machen?

9

Ich habe ein Submodul hinzugefügt:

%Vor%

Eine Datei .gitmodules wurde erstellt wie:

%Vor%

Und natürlich weiß Git davon:

%Vor%

Ich habe ein Submodul von Hand hinzugefügt, zum Beispiel zu dieser Datei hinzufügen:

%Vor%

Und ich habe den vorherigen Befehl wiederholt:

%Vor%

Soweit ich sehen kann, wird das, was ich von Hand hinzugefügt habe, ignoriert. Gibt es eine Möglichkeit, Git die Zeilen bewusst zu machen, die von Hand in der .gitmodules Datei hinzugefügt wurden?

Hinweis: Ich habe auch versucht, die Zeilen von Hand in die Datei .git/config einzufügen, und das hat auch nicht funktioniert.

    
Pablo Olmos de Aguilera C. 02.10.2011, 23:04
quelle

2 Antworten

4

Sie müssen

ausführen %Vor%

UPDATE:

Der Submodul-Add-Befehl klont tatsächlich den gesamten Repo und fügt sha1 zum Index hinzu.

Dies kann ein neues Verhalten im Vergleich zu früheren Versionen von git sein, der Klon wurde nicht sofort gemacht.

Wenn Sie keinen Eintrag im Index haben, der das Modul auf ein bestimmtes Commit verweist, verweigert git submodule update alles. Dies scheint ein neues Verhalten zu sein.

Hoffe, das hilft.

    
Adam Dymitruk 03.10.2011, 01:33
quelle
14

Ok, also dank Adam fand ich die Antwort, war irgendwie offensichtlich, aber dennoch, hier ist es:

Wenn Sie überprüfen, was git submodule add tut, werden Sie bemerken, dass es drei Dinge tut:

  1. Fügt der .gitmodules -Datei die Zeilen hinzu,
  2. Klont den Repo in dem 'Pfad', den Sie im Befehl festgelegt haben, und
  3. Fügt das Modul der Datei .git/config hinzu.

Im Grunde genommen besteht der einzige Unterschied zwischen einem Repo mit einem manuell hinzugefügten Submodul und dem über den Befehl git submodule hinzugefügten Repo selbst.

Beantworten Sie das gleiche Beispiel wie folgt:

%Vor%

Fügen Sie der .git/config Datei *:

folgendes hinzu %Vor%

Stelle sicher, dass du sie wenigstens zum git-Repo hinzufügst:

%Vor%

Und dann überprüfe, ob Git tatsächlich "bewusst" ist:

%Vor%

* Beachten Sie, dass die Variable "path", die Sie in der Datei .gitmodules verwenden, in dieser Datei nicht benötigt wird

    
quelle

Tags und Links