Wie kann ich jede nach dem letzten Festschreiben an meinem Verzeichnis vorgenommene Änderung rückgängig machen , einschließlich des Löschens hinzugefügter Dateien, des Zurücksetzens geänderter Dateien und des Zurücksetzens gelöschter Dateien?
Wie kann ich jede nach dem letzten Festschreiben an meinem Verzeichnis vorgenommene Änderung rückgängig machen , einschließlich des Löschens hinzugefügter Dateien, des Zurücksetzens geänderter Dateien und des Zurücksetzens gelöschter Dateien?
Antworten:
Setzen Sie zuerst die Änderungen zurück
git reset HEAD --hard
dann alles ungespurte ausräumen. Wenn Sie Dateien behalten möchten, die aufgrund von nicht verfolgt werden .gitignore
, gehen Sie mit diesem Befehl vorsichtig vor.
git clean -fd
-x
Option git clean
, die es anweist , auch ignorierte Dateien zu entfernen.
git clean -fd
Befehl um.
git clean -fd
werden ignorierte Dateien nicht gelöscht. -x
werden.
git clean -fd
löscht diese Ordner und nicht verfolgten Dateien. Getestet mit Git Version 1.9.1
Wie kann ich jede nach dem letzten Festschreiben an meinem Verzeichnis vorgenommene Änderung rückgängig machen , einschließlich des Löschens hinzugefügter Dateien, des Zurücksetzens geänderter Dateien und des Zurücksetzens gelöschter Dateien?
Sie können Änderungen an verfolgten Dateien rückgängig machen mit:
git reset HEAD --hard
Sie können nicht verfolgte Dateien entfernen mit:
git clean -f
Sie können nicht verfolgte Dateien und Verzeichnisse entfernen mit:
git clean -fd
Sie können Änderungen an nicht verfolgten Dateien jedoch nicht rückgängig machen .
Sie können ignorierte und nicht verfolgte Dateien und Verzeichnisse entfernen
git clean -fdx
Sie können Änderungen an ignorierten Dateien jedoch nicht rückgängig machen .
Sie können auch festlegen , clean.requireForce
zu false
:
git config --global --add clean.requireForce false
um die Verwendung von -f
( --force
) bei der Verwendung zu vermeiden git clean
.
Es gibt zwei Befehle, die in dieser Situation funktionieren:
root> git reset --hard HEAD ~ 1
root> git push -f
Weitere Git-Befehle finden Sie auf dieser Seite
git push -f
ist nicht mit der Frage verbunden und in diesem Szenario gefährlich