Gibt es eine Möglichkeit, eine festgeschriebene Datei in Git zurückzusetzen? Ich habe ein Commit an GitHub gesendet und dann festgestellt, dass es eine Datei gibt, die ich nicht verschieben wollte (ich habe die Änderungen noch nicht abgeschlossen).
99
Antworten:
Update: Sicherere Methode hinzugefügt
bevorzugte Methode:
Überprüfen Sie den vorherigen (unveränderten) Status Ihrer Datei. Beachten Sie den doppelten Strich
begehen Sie es:
Schieben Sie es, keine Kraft erforderlich:
Kehren Sie zu Ihrer unvollendeten Arbeit zurück und wiederholen Sie den Vorgang (dreimal Pfeil nach oben):
effektiv "unverbindlich":
Um das letzte Commit des Repository-HEAD zu ändern, verschleiern Sie Ihre versehentlich gedrängte Arbeit, während Sie möglicherweise in einen Konflikt mit Ihrem Kollegen geraten, der es möglicherweise bereits gezogen hat und der graues Haar wachsen lässt und viel Zeit verliert, wenn er versucht, seinen lokalen Zweigstellenleiter zu versöhnen mit dem zentralen:
So entfernen Sie Dateiänderungen aus dem letzten Commit:
Gehen Sie wie folgt vor, um die Datei auf den Status vor dem letzten Festschreiben zurückzusetzen:
Gehen Sie wie folgt vor, um das letzte Commit mit der zurückgesetzten Datei zu aktualisieren:
Um das aktualisierte Commit auf das Repo zu übertragen, gehen Sie wie folgt vor:
Erwägen Sie wirklich die Verwendung der zuvor erwähnten bevorzugten Methode.
quelle
git checkout HEAD~2 /path/to/file
? Bearbeiten: Sieht so aus, als ob ich in meinem Fall einfach wolltegit rm /path/to/file
Wenn Sie die Datei aus dem Remote-Repo entfernen möchten, entfernen Sie sie zuerst mit der Option --cache aus Ihrem Projekt und drücken Sie sie dann:
(Dies funktioniert auch, wenn die Datei vor einigen Commits zum Remote-Repo hinzugefügt wurde.) Denken Sie daran, die Dateierweiterungen, die Sie nicht pushen möchten, zu .gitignore hinzuzufügen.
quelle
Sie können nur eine Datei auf eine bestimmte Revision zurücksetzen.
Zuerst können Sie überprüfen, bei welchen Commits die Datei geändert wurde.
git log path/to/file.txt
Anschließend können Sie die Datei mit der Versionsnummer auschecken.
git checkout 3cdc61015724f9965575ba954c8cd4232c8b42e4 /path/to/file.txt
Danach können Sie es festschreiben und erneut pushen.
quelle
Setzen Sie die Datei in den richtigen Zustand zurück, schreiben Sie sie fest und drücken Sie erneut.
Wenn Sie sicher sind, dass noch niemand Ihre Änderungen abgerufen hat, können Sie
--amend
beim Festschreiben das vorherige Festschreiben ändern (dh den Verlauf neu schreiben) und dann drücken. Ich denke, Sie müssen die-f
Option beim Drücken verwenden, um den Druck zu erzwingen.quelle
Holen Sie sich den Hash-Code des letzten Commits.
git log
git revert <hash_code_from_git_log>
git push
Check-out in der GHR. Sie könnten bekommen, was immer Sie brauchen, hoffen, dass dies nützlich ist
quelle