Gelöschte Datei aus dem Repository wiederherstellen

Lesezeit: 3 Minuten

Ich befinde mich in einem Übergang von SVN zu GIT und habe eine Frage, auf die ich keine Antwort finden kann. Ich werde ein übliches Szenario beschreiben, wenn ich mit einigen Open-Source-Projekten über SVN arbeite.

  1. eine Kasse machen
  2. Beginnen Sie mit Dateien herumzuspielen, nehmen Sie Änderungen vor, um zu testen, wie das Projekt funktioniert.
  3. nach p.2 sind einige Dateien stark verändert und ich habe keine Chance, den ursprünglichen Zustand wiederherzustellen.
  4. Ich lösche die geänderten Dateien von der Festplatte “rm filename.cpp”, führe den Befehl “svn update” aus und voila, alle Originaldateien sind wieder da.

All dies funktioniert auch mit GIT, außer auf Seite 4. Ich versuche, “git pull” zu machen, es sagt, dass das Projekt auf dem neuesten Stand ist, und ich bekomme die Originaldateien nicht, obwohl sie im lokalen Ordner fehlen.

Was ist der richtige Befehl für p.4 bei der Arbeit mit git. Danke

  • mögliches Duplikat von Wie stelle ich Dateien in Git in früheren Zuständen wieder her?

    – Saheel Godhane

    17. Januar 2014 um 0:49 Uhr

Der einfachste Weg ist in der Ausgabe von angegeben git status:

git checkout -- file

wobei Datei der Name einer gelöschten Datei sein kann. Dadurch wird die gelöschte Datei wiederhergestellt, ohne andere Dateien zu beeinträchtigen.

  • Nun, aber was tun, wenn ich 10 Dateien wiederherstellen möchte und mich nicht an deren Namen erinnere?

    – Eugen

    26. Juni 2012 um 0:01 Uhr

  • git status wird Ihnen die Namen jeder geänderten/gelöschten Datei mitteilen

    – madth3

    26. Juni 2012 um 0:17 Uhr

  • Auch wenn Sie einen Ordner gelöscht haben, sagen wir /src/test, und angenommen, er enthält viele Dateien, selbst dann können Sie sie wiederherstellen, indem Sie einfach den folgenden Befehl ausführen: git checkout — src/test

    – Benutzer204069

    17. Februar 2017 um 21:00 Uhr


Versuchen Sie, den aktuellen Zweig auszuchecken (bzw HEAD):

git checkout HEAD

Oder wenn Sie zurückkehren möchten alles zum letzten Committed-Zustand (Warnung: Dadurch werden alle nicht festgeschriebenen Änderungen dauerhaft gelöscht!), Sie können auch hart zurücksetzen:

git reset --hard

  • Beides funktioniert nicht. Ich lösche einige Dateien, nachdem ich zur Kasse gegangen bin, heißt es, dass einige Dateien ein D-Flag haben, sonst passiert nichts. Wenn ich zurücksetze, sagt es, dass es eine Pull-Anforderung gibt, die ich nicht brauche, und wieder passiert nichts anderes. Wenn ich Pull mache, sagt es, dass die Dateien auf dem neuesten Stand sind, aber die gelöschten Dateien fehlen noch.

    – Eugen

    26. Juni 2012 um 0:07 Uhr

  • Danke Freund, deine Hilfe hat mir den Tag gerettet!

    – Pawan Parashar

    22. April 2020 um 5:56 Uhr

Das würde ich tun:

git reset HEAD <file-path>
git checkout -- <file-path>

Git ist in diesem Fall schrecklich, und ich habe so sehr damit gekämpft, dass es unglaublich ist. So mache ich es:

  1. Klonen Sie das Remote-Repo an einen Ort auf Ihrer lokalen Festplatte, der sich von dem Ort unterscheidet, an dem Sie Ihr vorhandenes lokales Repo haben
  2. Kopieren Sie die gelöschten Dateien/Verzeichnisse aus dem neu geklonten Repo in das vorhandene lokale Repo
  3. Übernehmen Sie die Änderungen in Ihr vorhandenes lokales Repository, und übertragen Sie es bei Bedarf auch auf das Remote-Repository
  4. Löschen Sie das neu geklonte lokale Repo

Warum es so kompliziert und zeitaufwändig sein sollte, eine so einfache Aufgabe zu erledigen, ist mir schleierhaft…

1131060cookie-checkGelöschte Datei aus dem Repository wiederherstellen

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

Privacy policy