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
-xOption git clean, die es anweist , auch ignorierte Dateien zu entfernen.
git clean -fdBefehl um.
git clean -fdwerden ignorierte Dateien nicht gelöscht. -xwerden.
git clean -fdlö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.requireForcezu 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 -fist nicht mit der Frage verbunden und in diesem Szenario gefährlich