Ich verwerfe versehentlich meine Änderungen an Dateien in meinem lokalen Arbeitsbaum über Git Checkout. Die Dateien werden derzeit nicht bereitgestellt. Ist es möglich, diesen Checkout “rückgängig” zu machen?
Git – So machen Sie das Auschecken von nicht bereitgestellten Dateien rückgängig, wodurch lokale Änderungen verworfen werden
Michael Wallasch
Wenn Sie eine “professionelle” IDE verwenden, stehen die Chancen gut, dass Sie Dateien aus einem lokalen Verlauf wiederherstellen können. In Rubymine zum Beispiel können Sie mit der rechten Maustaste auf Dateien klicken und einen Verlauf der Änderungen unabhängig von den Git-Änderungen ansehen, was mir jetzt ein paar Mal erspart hat ^^
-
Zu Ihrer Information, diese Funktion ist in der gesamten JetBrains-Familie der “professionellen” IDEs verfügbar: Pycharm, IDEA, PHPStorm, Webstorm. Habe heute mein Bakken gerettet. Danke Christoph!
– B Robster
3. Dezember 2012 um 22:08 Uhr
-
Ich muss Ihnen danken. Ich benutze WebStorm und habe diese Funktion völlig vergessen, obwohl ich sie ziemlich oft benutze. Ich war einfach so von dem Verlust des Codes eingeholt, dass ich nicht darüber nachgedacht habe!
– Tyson Phalp
5. April 2013 um 3:16 Uhr
-
In Eclipse können Sie mit der rechten Maustaste auf Datei -> Vergleichen mit -> Lokaler Verlauf klicken
– Maragues
31. Mai 2013 um 15:05 Uhr
-
hervorragend. Sublime2 Undo hat auch Änderungen rückgängig gemacht, die durch versehentliches Git-Checkout auf der Festplatte vorgenommen wurden.
– shuckc
10. Dezember 2013 um 15:03 Uhr
-
Wenn jemand feststellt, dass dieser Thread einige Arbeiten in XCode zerstört hat, gibt es eine Möglichkeit, den AutoSave-Verlauf abzurufen. XCode selbst hat keinen Menüeintrag, um den AutoSave-Verlauf anzuzeigen, aber es speichert ihn. Wenn Sie die betreffenden Dateien in TextEdit öffnen, können Sie den AutoSave-Verlauf unter Datei > Zurücksetzen wiederherstellen und durchsuchen.
– Qingu
28. November 2014 um 16:16 Uhr
VonC
Ich glaube, wenn eine Datei geändert, aber noch nicht hinzugefügt (inszeniert) wird, ist sie rein “privat”.
Das heißt, es kann nicht von GIT wiederhergestellt werden, wenn es mit dem Index oder der HEAD-Version überschrieben wird (es sei denn, Sie haben irgendwo eine Kopie Ihrer aktuellen Arbeit).
Ein “privater” Inhalt ist nur in Ihrem aktuellen Verzeichnis sichtbar, aber in keiner Weise in Git registriert.
Notiz: Wie in anderen Antworten erläutert, können Sie Ihre Änderungen wiederherstellen, wenn Sie eine IDE (mit lokalem Verlauf) verwenden oder einen offenen Editor (Strg + Z) haben.
-
Ich verstehe, dass Änderungen an einer „privaten“ Datei nicht von Git rückgängig gemacht werden können. Wenn die Datei jedoch von Git geändert wurde (z. B. via
git checkout --
), würde ich erwarten, dass es diesen Vorgang rückgängig machen kann, vielleicht über diereflog
. Ist das eine falsche Erwartung?– Ciprian Tomoiagă
27. November 2016 um 22:30 Uhr
-
@CiprianTomoiaga Reflog ist für die Vergangenheit nicht referenziert begeht. Wenn das, was Sie wiederherstellen möchten, nicht festgeschrieben (oder bereitgestellt) wurde, hilft Ihnen Reflog nicht weiter.
– VonC
27. November 2016 um 22:32 Uhr
-
@CiprianTomoiaga Für jede Art von privatem Inhalt (noch nicht hinzugefügt) würden Sie sich ausschließlich auf Ihren Editor oder Ihre IDE-Funktion verlassen. Beispiel für Sonnenfinsternis: help.eclipse.org/neon/…
– VonC
27. November 2016 um 22:33 Uhr
-
Wow! Unglaublich. Ich musste eine Datei auschecken, also wollte ich tippen
git checkout folders/subfolders/file
aber drücken Sie versehentlich die Eingabetaste, nachdem Sie dazu gekommen sindfolder
und verlor meine ganze Arbeit. / ist 1 cm von der Eingabetaste auf meiner Tastatur entfernt und ich wechsle oft zwischen Computern mit unterschiedlichen Tastaturlayouts, sodass meine Finger oft 10-15 Minuten brauchen, um sich an neue Positionen zu gewöhnen. Kaum zu glauben, dass Git im Jahr 2018 Dateien in den Papierkorb wirft, obwohl im Git-Buch steht, dass Git alles tut, um keine Arbeit zu verlieren.– Gman
4. Juli 2018 um 5:47 Uhr
-
@gman Hilft Ihnen die folgende Antwort zum „lokalen Verlauf“, die von einer IDE bereitgestellt wird, dabei, Ihre Arbeit wiederherzustellen?
– VonC
4. Juli 2018 um 6:02 Uhr
römisch-römisch
Wenn Sie in einem Editor wie Sublime Text arbeiten und die betreffende Datei noch geöffnet ist, können Sie Strg + Z drücken, und sie kehrt in den Zustand zurück, den sie vor dem Git-Checkout hatte.
-
Diese Antwort ist mein Tag gerettet. Vielen Dank!
– feyyaz
13. November 2016 um 10:36 Uhr
-
Ich bin gerade zufällig über diesen Fix gestolpert und wollte gerade eine neue Antwort posten. Es sieht so aus, als ob Sublime Git erfasst, der den Dateistatus in seinem Dateiänderungsverlauf ändert.
– Timma
9. Juni 2017 um 7:07 Uhr
-
Hat bei mir in Ecipse funktioniert.
– Anomalie
17. Juli 2018 um 19:25 Uhr
-
Hat auch für Visual Studio Code funktioniert
– intotecho
9. September 2018 um 11:59 Uhr
Leider gehen Ihre Änderungen verloren. Ihre privaten Änderungen werden einfach überschrieben. Es sei denn, du hast es getan git stash
vor der Kasse…
Nehmen Sie es von der hellen Seite: Sie können die Dinge jetzt noch besser umsetzen 😉
Benjohn
Entwickeln weiter OSX? Verwenden Xcode? Wahrscheinlich haben Sie Glück!
Wie in einem Kommentar von qungu beschrieben, verwaltet OS X einen automatisch gespeicherten Versionsverlauf von Dateien, auch wenn Sie die Zeitmaschine nicht verwenden.
Also, wenn Sie Ihre nicht inszenierten lokalen Änderungen mit einem nachlässigen weggeblasen haben git checkout .
hier ist, wie Sie können wahrscheinlich erholen Sie sich alle Ihre Arbeit.
Wenn jemand feststellt, dass dieser Thread einige Arbeiten in XCode zerstört hat, gibt es eine Möglichkeit, den AutoSave-Verlauf abzurufen. XCode selbst hat keinen Menüeintrag, um den AutoSave-Verlauf anzuzeigen, aber es speichert ihn. Wenn Sie die betreffenden Dateien in TextEdit öffnen, können Sie den AutoSave-Verlauf unter Datei > Zurücksetzen wiederherstellen und durchsuchen.
Was großartig ist und sich gestern um einen Arbeitstag für mich erholt hat.
Sie könnten fragen, „Warum funktioniert die git-Befehlszeilen-Benutzeroberfläche, das führende VCS für Software-Engineering in 2016 2017 2018 2019 2020, zumindest Dateien sichern, bevor sie einfach weggeblasen werden? Wie, Sie wissen schon, gut geschriebene Software-Tools in den letzten drei Jahrzehnten.”
Oder fragen Sie vielleicht, „Warum ist diese wahnsinnig tolle Dateiverlaufsfunktion in TextEdit verfügbar, aber nicht in Xcode, wo ich sie eigentlich brauche?“
… und beide, denke ich, werden Ihnen einiges über unsere Branche verraten. Oder vielleicht gehen Sie und reparieren diese Werkzeuge. Was super wäre.
-
Dass das funktioniert kann ich bestätigen. Das hat mir gerade Stunden Arbeit erspart!
– Bruno Roche
5. Januar 2018 um 15:15 Uhr
-
hat bei mir nicht funktioniert, da es sich um die betreffende Datei handelte
Model
Leider– Siempay
25. Januar 2018 um 16:46 Uhr
-
@brahimm das Model?
– Benjohn
25. Januar 2018 um 18:26 Uhr
-
Das hat mir gerade eine Menge Kummer erspart. Vielen Dank.
– Quadratfrosch
19. April 2018 um 10:49 Uhr
-
Sehr interessant: Ich habe mit der rechten Maustaste auf meine Quelldatei geklickt und auf das Menü “Öffnen mit” geschaut. Zur Auswahl standen sowohl TextEdit 1.14 als auch TextEdit 1.6. Nur TextEdit 1.14 hatte die Möglichkeit, auf ältere Revisionen zurückzugreifen. Die Benutzeroberfläche war sehr schön, genau wie TimeMachine.
– Käferbrot
17. März 2019 um 21:55 Uhr
Marcin Szymczak
Überprüfen Sie den lokalen Verlauf in Ihrer IDE.
-
Dass das funktioniert kann ich bestätigen. Das hat mir gerade Stunden Arbeit erspart!
– Bruno Roche
5. Januar 2018 um 15:15 Uhr
-
hat bei mir nicht funktioniert, da es sich um die betreffende Datei handelte
Model
Leider– Siempay
25. Januar 2018 um 16:46 Uhr
-
@brahimm das Model?
– Benjohn
25. Januar 2018 um 18:26 Uhr
-
Das hat mir gerade eine Menge Kummer erspart. Vielen Dank.
– Quadratfrosch
19. April 2018 um 10:49 Uhr
-
Sehr interessant: Ich habe mit der rechten Maustaste auf meine Quelldatei geklickt und auf das Menü “Öffnen mit” geschaut. Zur Auswahl standen sowohl TextEdit 1.14 als auch TextEdit 1.6. Nur TextEdit 1.14 hatte die Möglichkeit, auf ältere Revisionen zurückzugreifen. Die Benutzeroberfläche war sehr schön, genau wie TimeMachine.
– Käferbrot
17. März 2019 um 21:55 Uhr
ishab acharya
In VSCODE hat Strg + Z (Rückgängig) für mich funktioniert
Ich tat git checkout .
anstatt git add .
und alle meine Dateiänderungen gingen verloren.
Aber jetzt mit command + z
in meinem Mac, habe die Änderungen wiederhergestellt und mir eine Menge Arbeit erspart.
-
gibt es eine andere Möglichkeit?
– Abdel Manan
2. März 2020 um 14:30 Uhr
Nein, können wir nicht, aber wenn Sie Eclipse verwenden, können wir Team -> Local History überprüfen
– USM
5. Februar 2019 um 5:33 Uhr