Ich habe die Anweisungen zum Erstellen von Github-Seiten befolgt und vergessen, in mein Git-Unterverzeichnis zu wechseln. Infolgedessen habe ich gerade ein ganzes Verzeichnis von Dokumenten mit nuked git clean -fdx
.
Kann ich diesen schrecklichen Fehler auf irgendeine Weise rückgängig machen?
119
git clean -fdx
ohne Vorwarnung vor, dass der Betrieb so gefährlich ist. Ich frage mich, wie viele Menschen mit diesem scheinbar unschuldigen Vorschlag ihre Akten unwiderruflich zerstört haben.git clean
Anrufen viel Herzschmerz ersparen . Versuchen Sie auch, sich von der Gewohnheit des Reinigens zu lösen, ohne dies zu überprüfen. Erstellen Sie ein aufrufbares Powershell- oder Bash-Skript, dasgit clean -fdxn
mit einer Bestätigungsaufforderung ausgeführt wird, bevor Sie die unglaublich zerstörerische Bereinigung ausführen .Antworten:
Nein, diese Dateien sind weg.
(Nur unter Linux überprüft: Git Clean Calls
unlink()
und keine Sicherung im Voraus.)quelle
git clean
versehentlich zurückgestellte Änderungen im.idea
versteckten Ordner gelöscht und der lokale Verlauf hat mich gerettet!Führt einen Probelauf durch und zeigt Ihnen, welche Dateien gelöscht würden, wenn Sie ausgeführt würden
(Dies ist natürlich nur hilfreich, wenn Sie dies im Voraus wissen, aber für das nächste Mal)
quelle
-n
für die meisten Git-Befehle (und viele andere * nix-Befehle).Mit IntelliJ / Android Studio können Dateien aus dem lokalen Verlauf wiederhergestellt werden .
quelle
Nein. "Git clean -fdx" löscht alle Dateien und Verzeichnisse, die git nicht verfolgt, aus Ihrem Arbeitsverzeichnis. Da Git diese Dateien nicht verfolgt, werden keine Sicherungen dieser Dateien erstellt. Zumindest normalerweise nicht.
Wenn Sie vor relativ kurzer Zeit ein 'git add' für eine dieser Dateien durchgeführt haben (aber das Commit abgebrochen haben), besteht die Möglichkeit, dass Sie es mit 'git fsck --lost-found' finden. Es ist einen Versuch wert, aber machen Sie sich keine allzu großen Hoffnungen.
In Zukunft sollten Sie lieber ein paar Mal zu oft als ein paar Mal zu selten festlegen. Auf diese Weise verfügen Sie zumindest über ein lokales Backup, auch wenn Sie diese Commits nicht auf eine Remote übertragen.
quelle
mkdir
es gelesen hatteWie oben erwähnt, können Sie, wenn Sie Glück haben (falls Sie jemals "git add" gemacht haben), das gesamte Objekt wie folgt extrahieren:
Auf diese Weise werden alle Arten von Chunks gesucht, die gesamten Unterschiede gesammelt und einer Datei hinzugefügt, mit der Sie die verlorene Datei extrahieren können. In meinem Fall hatte ich eine ganze Java-Klasse verloren.
quelle
Wenn Sie eine Jetbrains-IDE verwenden, können Sie den lokalen Verlauf einer Datei anzeigen. Falls Sie es getan haben
git clean
, können Sie die Datei neu erstellen, den lokalen Verlauf der Datei überprüfen und von dort aus wiederherstellen.Arbeitete für mich für eine einzelne Datei. Für ein vollständiges Verzeichnis habe ich keine Ahnung, wie das geht.
quelle
Ich hatte heute dieses Problem.
Wie andere gesagt haben, speichert Git die Dateien nicht.
Die einzige Möglichkeit, dies rückgängig zu machen, ist ein Dienstprogramm zum Wiederherstellen. Ich habe "extundelete" verwendet und alles wiederhergestellt, aber Ihr Kilometerstand / Dateisystem kann variieren.
quelle
Wenn Sie an Eclipse arbeiten, besteht eine der möglichen Lösungen darin, den lokalen Verlauf von Eclipse wiederherzustellen.
quelle
Eigentlich ja ! Das ist möglich! Aber ohne Git-Befehle zu verwenden.
Wir brauchen nur ein Tool zur Wiederherstellung von Dateien wie Recuva .
Erwähnen Sie einfach den Pfad, von dem es gelöscht wurde, und lassen Sie die Dateien wiederherstellen.
Hier sind auch einige nützliche Hinweise zur Verwendung dieser App:
Advanced Mode
->Options
->Actions
->Restore folder structure
Damit werden alle Ihre Dateien wiederhergestellt, indem Sie die Ordnerstruktur beibehalten, damit es viel einfacher wird Ziehen Sie diesen Ordner einfach per Drag & Drop in den Pfad, aus dem er gelöscht wurde.
Warnung! Versuchen Sie, das Laufwerk, von dem aus es gelöscht wurde, nicht zu berühren (Dateien hinzuzufügen / zu bearbeiten), sobald Sie eine Datei verlieren (versehentlich löschen), um die Wahrscheinlichkeit einer erfolgreichen Wiederherstellung zu erhöhen. Andernfalls können Sie diese Datei vollständig verlieren.
Warum es funktioniert: Wenn Sie eine Datei löschen, wird sie tatsächlich nicht gelöscht. Es wird nur als "gelöscht" markiert. Wenn Sie also das nächste Mal Dateien zum selben Laufwerk hinzufügen / aktualisieren, werden diese alten Dateien mit den neuen überschrieben. Aber bis sie überschrieben werden, ist es immer noch möglich, die Dateien zu lesen (und natürlich wiederherzustellen).
quelle
Wenn Sie git mit MSBuild verwenden, habe ich ein Ziel erstellt, das alle Dateien kopiert und dies dann tut
git clean -xdf
. Auf diese Weise können Sie die Datei problemlos wiederherstellen, wenn Sie feststellen, dass Sie etwas gelöscht haben, das Sie nicht löschen wollten. Schauen Sie hier: http://blog.3d-logic.com/2012/11/04/safe-git-clean-with-msbuild/quelle
Ich habe mit einem Code gearbeitet, den ich meinem Repository hinzufügen sollte, und ich habe mit -dfx gereinigt, um die Dateien wiederherzustellen.
Ich habe versucht, Debugfs zu verwenden, nach Inodes, Testdisk und vielen anderen Tools zu suchen und diese zu verknüpfen, und keiner hat das Verzeichnis gefunden, das diese dumme Schrift versehentlich gelöscht hat.
Laden Sie extundelete von sourceforge herunter .
Sie müssen wahrscheinlich das e2fslibs-dev-Paket
Run installieren
Es wird die Binärdatei für extundelete im src-Ordner generiert. In meinem Fall habe ich einen Ordner fälschlicherweise gelöscht. Nennen wir es FOOBAR
Ich bin gerade gelaufen:
und es wurde ein Ordner mit dem Namen RESTORED_FOLDERS erstellt
quelle
Wenn Sie einen Mac verwenden und mit einem gesichert haben
Time Machine
, können Sie ihn wiederherstellenquelle
Glücklicherweise habe ich diesen Fehler bei der Verwendung von Windows 7 gemacht. Ich bin zum Papierkorb gegangen, habe alle gelöschten Dateien hervorgehoben und auf "Wiederherstellen" geklickt. Getan.
quelle
git clean
verschiebt keine Dateien in den Papierkorb.Wenn Sie Ihre Änderungen nicht gepusht haben (Git Push), können Sie auch die Informationen von Ihrem Server zurückbringen, die noch nicht aktualisiert wurden. Ich habe filezilla verwendet, um die gelöschten Dateien zurückzubringen und in meine lokalen Dateien zu kopieren. Es ist nicht der beste Weg, aber es funktioniert und vermeidet die Verwendung der Konsole
quelle