2012-07-20 7 views
5

In meinem Git-Repository habe ich eine utf-8-Konvertierung von vielen Dateien, aber nur unter dem .git-Verzeichnis, so dass das .git-Verzeichnis nicht berührt wurde. Vor dieser Konvertierung habe ich einen neuen Testzweig erstellt, aber jetzt kann ich meinen Repo nicht mehr verwenden, ich kann nicht zum Master zurückwechseln. Wenn ich tun:Git-Status gibt mir einen Fehler: schlechte Index-Datei sha1 Unterschrift

git status 

oder andere git Befehl erhalte ich:

error: bad index file sha1 signature 
fatal: index file corrupt 
fatal: 'git status --porcelain' failed in submodule core/kimai-mobile 

ich es gesucht und den Befehl gefunden:

rm -f .git/index 

und danach:

git reset 

aber das didn ' t helfen. Ich verstehe nicht, was falsch ist. Dann löschte ich den "Submodul" Core/kimai-mobile und plötzlich konnte ich ihn wieder benutzen!

Ich hatte dieses andere Git-Repository in diesem Verzeichnis, in dem ich die andere Indexdatei mit meiner Konvertierung zerstört. Mein Problem war, dass ich dachte, dass die "Haupt" -Repositorys-Indexdatei gemeint war.

Nun ist es wieder zu arbeiten :)


Meine Frage ist, warum hat git aussehen in diesen Submodul obwohl ich den gesamten Ordner dieses Submodul in meinem ignorelist hatte?

Dies ist die Datei von meinem "main" git ignorieren:

.gitignore 

... 
# kimai mobile 
kimai-mobile 
... 
+0

Was ist die Frage? –

Antwort

6

Submodule sind komplette Git-Repositories. Sie können also das .git-Unterverzeichnis (oder zumindest einen Link dazu) enthalten.

Wenn Sie also Ihr Tool für alle Dateien außer .git im Stammverzeichnis des Stammrepositorys verwenden, können Sie dennoch einige interne .git-Dateien in Submodulen beschädigen.

Verwandte Themen