Wie verwerfe ich Änderungen in meiner Arbeitskopie, die nicht im Index enthalten sind?
Eigentlich kann Git Stash einen Titel haben. Zum Beispiel git stash save "Feature X work in progress"
.
Wie verwerfe ich Änderungen in meiner Arbeitskopie, die nicht im Index enthalten sind?
Wenn Sie einen Vorrat an eine andere Person übertragen möchten:
# add files
git add .
# diff all the changes to a file
git diff --staged > ~/mijn-fix.diff
# remove local changes
git reset && git checkout .
# (later you can re-apply the diff:)
git apply ~/mijn-fix.diff
[edit] wie kommentiert, ist es möglich, Verstecke zu benennen. Nun, verwenden Sie diese, wenn Sie Ihr Versteck teilen möchten ;)
Zur Erinnerung: Neuere Versionen von git verfügen über den Befehl restore, der auch ein Vorschlag ist, wenn man git status eingibt, wenn man Dateien geändert hat:
(verwenden Sie "git add ...", um zu aktualisieren, was übertragen werden soll)
(verwenden Sie "git restore ...", um Änderungen im Arbeitsverzeichnis zu verwerfen)
Git 'restore' ist also die moderne Lösung für dieses Problem. Es ist immer eine gute Idee, die Vorschläge von git zu lesen, nachdem man 'git status' eingegeben hat :-)
Wenn alle bereitgestellten Dateien tatsächlich übertragen wurden, kann der Zweig z.B. von Ihrer GUI aus mit etwa drei Mausklicks zurückgesetzt werden: Zweigstelle , Zurücksetzen , Ja !
Um unerwünschte lokale Änderungen rückgängig zu machen, übertrage ich in der Praxis oft alle guten Sachen und setze dann den Zweig zurück.
Wenn die guten Sachen in einem einzigen Commit übertragen werden, dann können Sie "amend last commit" verwenden, um sie wieder in den Zustand "staged" oder "unstaged" zu versetzen, wenn Sie sie letztendlich anders übertragen möchten.
Dies ist vielleicht nicht die technische Lösung, die Sie für Ihr Problem suchen, aber ich halte es für eine sehr praktische Lösung. Sie ermöglicht es Ihnen, unbearbeitete Änderungen selektiv zu verwerfen, indem Sie die Änderungen, die Sie nicht mögen, zurücksetzen und die, die Sie mögen, behalten.
Zusammenfassend kann ich also sagen, dass ich einfach mache übergeben. , Zweigrückstellung et letzte Übertragung ändern .
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
0 Stimmen
Siehe auch stackoverflow.com/questions/22620393/
16 Stimmen
git-clean
entfernt nur die nicht verfolgten Dateien aus dem Arbeitsbaum git-scm.com/docs/git-clean37 Stimmen
Um den obigen Kommentar von Asenar zu verdeutlichen,
git-clean -df
kann gefährlich sein. Es löscht lokale, nicht verfolgte Dateien (z. B. solche, die durch eine .gitignore-Datei abgedeckt sind). Lesen Sie die folgenden Hinweise sorgfältig durch und erwägen Sie stattdessen git checkout .26 Stimmen
'git clean -df ' Seien Sie gewarnt! Ich habe das ausprobiert und wichtige Ordner verloren, die nicht wiederhergestellt werden können... Autsch!
73 Stimmen
Unter
git status
macht einen Vorschlag, wie man das machen kann!git checkout -- .
0 Stimmen
Git gui hat eine Funktion, mit der Änderungen sicher rückgängig gemacht werden können. .gitignore wird von diesem Programm beachtet, während git-clean es überhaupt nicht verwendet.
0 Stimmen
@Readonly Ich denke, die Frage sollte lauten: "Wie verwerfe ich nicht bereitgestellte Änderungen im Arbeitsbaum?
git reset HEAD file1
das überschreibtfile1
vom letzten Commit in der Commit-Historie zum Staging-Bereich.28 Stimmen
@Paulo: ab Juli 2019,
git status
gibt die Anregung:git restore
.git restore
ist ein neuer Befehl genau für diesen Zweck. Siehe mein Update 2019 .2 Stimmen
Ich denke, dass entweder die Frage oder der Titel geändert werden sollte. Der Titel stimmt nicht mit der gestellten Frage überein, und es ist nicht klar, ob die Antworten beides abdecken.
0 Stimmen
Wahrscheinlich ist es nicht das, was Sie suchen, aber wenn Sie die GitHub Desktop App verwenden, gibt es natürlich einen Menüpunkt, um dies zu tun. Zweig -> Alle Änderungen verwerfen