6291 Stimmen

Wie verwerfe ich nicht bereitgestellte Änderungen in Git?

Wie verwerfe ich Änderungen in meiner Arbeitskopie, die nicht im Index enthalten sind?

0 Stimmen

16 Stimmen

git-clean entfernt nur die nicht verfolgten Dateien aus dem Arbeitsbaum git-scm.com/docs/git-clean

37 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 .

8voto

twicejr Punkte 1279

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 ;)

5 Stimmen

Eigentlich kann Git Stash einen Titel haben. Zum Beispiel git stash save "Feature X work in progress" .

7voto

The Schwartz Punkte 697

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 :-)

2 Stimmen

Wiederholen Sie dies einfach stackoverflow.com/a/57880896/6309 .

0 Stimmen

Sicherlich, ich sage nur das Offensichtliche und dass Git versucht, mit den Kommentaren aus einem "Git-Status"-Aufruf zu helfen :-)

7voto

onalbi Punkte 2315

Wenn Sie sich in einem Fall von Submodul befinden und keine anderen Lösungen funktionieren, versuchen Sie es:

  • Um zu prüfen, was das Problem ist (vielleicht ein "schmutziger" Fall), verwenden Sie:

    git diff

  • So entfernen Sie Verstecke

    git submodule update

6voto

Fairoz Punkte 1486

Wenn Sie unstaged Dateien wiederherstellen wollen, verwenden Sie git restore --staged .

6voto

Ivan Punkte 3867

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.com

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.

Powered by:

X