2013-07-18 10 views
6

Ich beging und dann ist meine Windows (.. :() Maschine abgestürzt und hat mir den schönen und berüchtigten Blue Screen of Death präsentiert. Ich habe den Rechner neu gestartet und bin sofort wieder zur Arbeit gegangen etwas ernstlich falsch mit meinem lokalen Git-Repo zu entdecken, dassFatal: kein git repository - nach BSoD

„Fatal: keinen Git Repository“..

... Nun, das schnell eskalierte

ich habe zu diesem Thema lese nach oben (auch hier bei StackOverflow), habe aber noch keine Lösung gefunden .. Die Dinge, die ich gemacht habe, sind:

  • git init (sagt innerhalb 0,1s: Reinitialized Git-Repository vorhandenen)
  • git status (gibt gleiche fatale Fehler)
  • git push origin (gleicher fatalen Fehler)

Die entwickeln. Git Ordner ist immer noch da und sieht normal aus (obwohl ich keine Anomalien direkt erkennen würde).

Es sieht so aus, als ob ich in der Befehlszeile nichts tun kann, um mein Repository wiederzubeleben.

Ich habe this reference gefunden, aber ich habe keine Ahnung, wie "HEAD zu einem gültigen ref/hash" ändern.

Gibt es jemanden, der von hier aus weiß, wohin er gehen soll?

(Ich weiß, dass diese Frage mehrere Male auf SO auftaucht, aber keines dieser Probleme hat den gleichen Ursprung und ihre Lösungen funktionieren nicht. Bitte stellen Sie sicher, dass diese Frage wirklich ein Duplikat ist, wenn Sie es als solches markieren.)

+3

Wenn das Zeug, das Sie übergeben haben, nicht zu komplex ist, könnten Sie vielleicht einen neuen Klon des Ursprungsrepositorys erstellen, Ihre lokalen Änderungen auf dieses Repo übertragen und von dort aus weiterarbeiten? –

+0

Das ist sicher eine Option, obwohl ich ziemlich neugierig bin, wie ich diesen "richtigen Weg" beheben kann. :) – Sherlock

+3

Sie können den .git-Ordner löschen, wenn Sie irgendwo einen Klon haben (z. B. auf github), dann Ihren lokalen Ordner neu initialisieren und aus dem anderen Repository ziehen. –

Antwort

3

(ich bin der Fragesteller.)

Leider habe ich nicht die Zeit haben, um dieses Problem in der Zeit zu lösen. Der Druck in diesem Projekt ist an und ich musste weitermachen. Ich entschied mich für einen komplett neuen Checkout. Alles funktioniert wieder gut.

Lektion gelernt: Nimm niemals einen BSoD während des Commit.

+1

Sollte nicht die Lektion "häufiger Backups machen"? – CharlesB

+1

Vielleicht hättest du auch etwas wie "ref: refs/heads/master" in '.git/HEAD' schreiben können, damit es wieder als Git-Repository erkannt werden kann. Auf meinem System kann ich ein Git-Repository manuell erstellen, indem ich einfach zwei leere Verzeichnisse ("objects" und "refs") und eine kleine Datei HEAD mit 'ref: refs/heads/something'-Inhalt erstelle. –

+0

@CharlesB nein, ich habe nichts verloren. Ich schob mich auch schon Minuten vor. – Sherlock

Verwandte Themen