Angenommen, ich befinde mich in einem Git-Repository. Ich lösche eine Datei und übertrage diese Änderung. Ich arbeite weiter und nehme weitere Übertragungen vor. Dann stelle ich fest, dass ich die Datei wiederherstellen muss.
Ich weiß, dass ich eine Datei auschecken kann mit git checkout HEAD^ foo.bar
aber ich weiß nicht genau, wann diese Datei gelöscht wurde.
- Wie kann ich am schnellsten den Commit finden, der einen bestimmten Dateinamen gelöscht hat?
- Wie kann ich diese Datei am einfachsten wieder in meine Arbeitskopie aufnehmen?
Ich hoffe, dass ich meine Protokolle nicht manuell durchsuchen, das gesamte Projekt für einen bestimmten SHA auschecken und diese Datei dann manuell in meinen ursprünglichen Projekt-Checkout kopieren muss.
43 Stimmen
Beachten Sie, dass der vorangegangene Kommentar die Frage im Titel beantwortet, nicht im Hauptteil - das schließt ein, herauszufinden wenn die Datei wurde gelöscht.
14 Stimmen
So finden Sie die Übertragung, in der eine Datei gelöscht wurde:
git log --diff-filter=D -- path/to/file
2 Stimmen
Verwandt: Wie verwirft man unstaged Änderungen in Git? .
0 Stimmen
Verwandt: So finden Sie eine gelöschte Datei in der Commit-Historie
0 Stimmen
Verwandt: wie man alle gelöschten Dateien auf einmal wiederherstellt
0 Stimmen
@hhh funktioniert nicht, ich erhalte die Fehlermeldung: pathspec './src/main/resources/file' stimmt mit keiner git bekannten Datei überein.
64 Stimmen
@hhh
git checkout deletedFile
wird ungelöschtdeletedFile
wenn sie gelöscht wurde, aber diese Löschung noch nicht inszeniert oder verpflichtet worden ist . Darum geht es in dieser Frage nicht; es geht darum, wie eine Datei wiederhergestellt werden kann, deren Löschung vor vielen Commits durchgeführt wurde.