1365 Stimmen

git: alle Änderungen im Arbeitsverzeichnis einschließlich neuer Dateien rückgängig machen

Wie lösche ich alle Änderungen im Arbeitsverzeichnis, einschließlich neuer, nicht verfolgter Dateien? Ich weiß, dass git checkout -f tut das, aber es löscht keine neuen, nicht verfolgten Dateien, die seit der letzten Übertragung erstellt wurden.

Hat jemand eine Idee, wie man das machen kann?

1 Stimmen

@Joel & Wayfarer: warum versuchst du nicht git help reset y git help clean

3 Stimmen

Es ist eine gute Idee, dafür einen Alias in der Git-Konfiguration anzulegen ;)

49voto

donquixote Punkte 4316

Die folgenden Werke:

git add -A .
git stash
git stash drop stash@{0}

Bitte beachten Sie, dass dadurch sowohl Ihre nicht umgesetzten als auch Ihre umgesetzten lokalen Änderungen verworfen werden. Sie sollten also alle Änderungen, die Sie beibehalten möchten, committen, bevor Sie diese Befehle ausführen.

Ein typischer Anwendungsfall: Sie haben viele Dateien oder Verzeichnisse verschoben und möchten den ursprünglichen Zustand wiederherstellen.

Credits: https://stackoverflow.com/a/52719/246724

1 Stimmen

Warum verweisen Sie auf stash@{0} statt nur auf git stash drop ?

0 Stimmen

Ehrlich gesagt, weiß ich es nicht mehr :)

0 Stimmen

Das hier hat funktioniert. Achten Sie darauf, dass Sie sich im Home-Verzeichnis befinden ( git add -A . ). Ich habe 30m verloren, weil es keine passende Datei gab. Danke!

42voto

skube Punkte 5213

Ich dachte, es sei ( Warnung: folgende wird alles auslöschen )

$ git reset --hard HEAD
$ git clean -fd

El reset um Änderungen rückgängig zu machen. Die Website clean zum Entfernen aller nicht verfolgten f iles und d irectories.

0 Stimmen

Das funktioniert nicht, ich erhalte immer noch eine Konfliktwarnung, wenn ich eine git pull danach: CONFLICT (content): Merge conflict in... Ich habe das Problem nur durch eine git pull --strategy=ours

7voto

santosh kumar Punkte 476
git reset --hard origin/{branchName}

Es werden alle nicht verfolgten Dateien gelöscht.

5voto

tg_so Punkte 486

git clean -i zeigt Ihnen zunächst die zu löschenden Elemente an und fährt nach Ihrer Bestätigung fort. Ich finde dies nützlich, wenn es um wichtige Dateien geht, die nicht versehentlich gelöscht werden sollten.

Ver git help clean für weitere Informationen, einschließlich einiger anderer nützlicher Optionen.

4voto

Agorreca Punkte 654

Wenn Sie alle Änderungen verwerfen wollen, können Sie eine der gültigen Optionen in einem Alias in .gitconfig . Zum Beispiel:

[alias]
    discard = "!f() { git add . && git stash && git stash drop stash@{0}; }; f"

Verwendung: git discard

1 Stimmen

Dieser Alias gefällt mir sehr gut

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