Git – So machen Sie das Auschecken von nicht bereitgestellten Dateien rückgängig, wodurch lokale Änderungen verworfen werden

Lesezeit: 6 Minuten

Benutzer-Avatar
Michael Wallasch

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?

  • 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

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

Benutzer-Avatar
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 die reflog. 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 sind folder 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

Benutzer-Avatar
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 😉

Benutzer-Avatar
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

Benutzer-Avatar
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

Benutzer-Avatar
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

1013020cookie-checkGit – So machen Sie das Auschecken von nicht bereitgestellten Dateien rückgängig, wodurch lokale Änderungen verworfen werden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy