2012-04-10 2 views
1

Ich nehme Arbeit an diesem Rails-System auf und mir wurde gesagt, dass ich den Server modifizieren könnte, um einige Tests durchzuführen. Ich habe eine kleine Änderung an ein paar Dateien zum Testen vorgenommen, meinen Verdacht bestätigt und dann einen rekursiven Git-Checkout im Root-Verzeichnis durchgeführt.Verwendet git checkout, um eine Datei zurückzusetzen - trotzdem, um es wiederherzustellen?

Ich startete Passagier ohne Problem, aber bekam einen Fehler mit MySQL, nämlich meine Datenbank.yml Datei hatte nicht die richtigen Anmeldeinformationen. Es stellte sich heraus, dass der Entwickler, der vor mir war, die Datei "datenbank.yml" in die Versionskontrolle gestellt hatte, so dass die Benutzernamen/Passwörter auf diesem System zum vorherigen Commit am rekursiven Git-Checkout zurückkehrten.

Gibt es einen möglichen Weg, diese Version von database.yml zurück zu bekommen? Es scheint, als ob ich in meinen Git-Commits vortreten möchte, aber ich möchte nicht damit herumalbern, wenn es möglich ist, diese Datei wiederherzustellen. Hat jemand Ideen?

Antwort

2

sollten Sie in der Lage sein, eine bestimmte Version einer bestimmten Datei zur Kasse:

git checkout 5ed99fd2 config/database.yml 

verwenden, was Hash (Revision) Sie behebt das Problem denken. Sie können ziemlich schnell umschalten, bis Sie es richtig machen.

Wie Sie gesehen haben, führt das in Versionskontrolle führt zu nichts als Kummer und Schmerz.

+1

* Wenn man diese Version in die Kontrolle bringt, führt das zu nichts als Kummer und Schmerz. * Amen. – zetetic

+0

Was ist, wenn die Datei nie festgeschrieben wurde, d. H. Der vorherige Entwickler hat eine Änderung vorgenommen, sie nicht übernommen und die Änderung rückgängig gemacht? Ist es verloren? –

+0

Oh, wenn es nie begangen wurde, dann bist du deinem Betriebssystem ausgeliefert. Normalerweise ist die Antwort nein. Wenn Sie stündliche inkrementelle Backups haben, was immer eine gute Idee ist, dann könnten Sie es von dort wiederherstellen. – tadman

Verwandte Themen