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.
- eine Kasse machen
- Beginnen Sie mit Dateien herumzuspielen, nehmen Sie Änderungen vor, um zu testen, wie das Projekt funktioniert.
- nach p.2 sind einige Dateien stark verändert und ich habe keine Chance, den ursprünglichen Zustand wiederherzustellen.
- 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
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.
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
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:
- 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
- Kopieren Sie die gelöschten Dateien/Verzeichnisse aus dem neu geklonten Repo in das vorhandene lokale Repo
- Übernehmen Sie die Änderungen in Ihr vorhandenes lokales Repository, und übertragen Sie es bei Bedarf auch auf das Remote-Repository
- 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…
11310600cookie-checkGelöschte Datei aus dem Repository wiederherstellenyes
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