2013-03-27 10 views
22

Sagen Sie, ich tippe hg add in Mercurial, und dort eine Reihe von nicht verfolgten Dateien in meinem Arbeitsverzeichnis, die nicht ignoriert werden. Was ist der einfachste Weg, alle diese Dateien zu entfernen, ohne den Namen jeder Datei explizit einzugeben?Wie Sie alle hinzugefügten Dateien in Mercurial rückgängig machen

Kann ich sie einfach alle mit einem Befehl entfernen?

+0

Duplikat von http://stackoverflow.com/questions/6183374/undoing-last-addremove-in-mercurial – Eborbob

Antwort

24

Vorwort

Sie immer Fragen stellen müssen, die so viele Informationen wie möglich enthalten. Denn jetzt kann Ihre Frage, abhängig von einigen Bedingungen, ganz andere Antworten haben.

Fall eins - keine lokalen Änderungen in bereits Dateien versioniert, nur hinzugefügt (und engagiert nicht) -Dateien

hg revert wird Ihr Arbeitsverzeichnis in den Zustand nach dem letzten Rück begeht, zum Verhängnis aller Änderungen, die es ihm.

Fall One - lokale Änderungen, die Sie speichern möchten, und fügte hinzu, gelegentlich Dateien

  1. Lesen Sie mehr über Dateigruppen in Mercurial.
  2. Verwenden Sie die Dateigruppe im Befehl hg forget, etwa hg forget "set:added()".
-1

Sie könnten immer nur Ihr Repository neu klonen und dann das Verzeichnis .hg in Ihrem Arbeitsordner ersetzen (löschen und kopieren) und das Verzeichnis aus dem frischen Klon ... (vorausgesetzt, Sie haben keine ausstehenden Commits. .

)
+0

Dies scheint in der Theorie praktikabel, aber möglicherweise fehleranfällig. Ich denke, wenn Sie eine große Menge an lokalen Änderungen hatten, die Sie nicht manuell in einem neuen Klon reproduzieren wollten, könnte dies die beste Wahl sein. Kreative Lösung sowieso! – DaveInCaz

19

Verwenden hg revert oder hg forget auf die Dateien (beide tun das gleiche für eine Datei, die Sie lief hg add auf). Um zu vermeiden, die Dateinamen eingeben, können Sie eine fileset wie folgt verwenden:

$ hg revert "set:added()" 

Dies kehrt die Datei zurück, wie es sah in der Arbeitskopie Mutter Revision, das heißt, es wird wieder unbekannt geworden.

+0

Hallo, Martin. Vermutlich ist dies raffinierter als nur 'hg revert -a', das würde auch Änderungen an bestehenden Dateien wiederherstellen, richtig? –

+0

@FaheemMitha Ja, genau. –

Verwandte Themen