Git clean bereinigt keine nicht nachverfolgten Dateien
Lesezeit: 5 Minuten
DA.
Ich erhalte die Fehlermeldung „Die folgenden nicht nachverfolgten Arbeitsbaumdateien würden beim Auschecken überschrieben … bitte verschieben oder entfernen Sie sie, bevor Sie die Zweige wechseln“.
Die gemeinsame Lösung scheint zu sein git clean
Wenn ich das eintippe, bekomme ich keine Fehlermeldung, aber es passiert nichts. Und wenn ich einen anderen Zweig auschecke, erhalte ich nur den gleichen Fehler wie oben.
Mehr Info. git -n und git -f genau das gleiche tun … nichts.
If the Git configuration variable clean.requireForce is not set to false, git clean will refuse to delete files or directories unless given -f, -n or -i
– William Pursel
15. August 2018 um 21:06 Uhr
@WilliamPursell Danke. Ich habe meine Frage aktualisiert. Ach, -f und -n auch dazu führen, dass nichts passiert.
– DA.
15. August 2018 um 21:12 Uhr
was macht git status Show?
– Raumelch
15. August 2018 um 21:18 Uhr
Aus welchem Verzeichnis führst du aus git clean? Es wird nur das aktuelle Arbeitsverzeichnis und darunter bereinigt.
– William Pursel
15. August 2018 um 21:22 Uhr
Werden diese Dateien ignoriert? Hast du versucht hinzuzufügen -x?
– William Pursel
15. August 2018 um 21:33 Uhr
Venkataraman R
Wenn Sie nicht verfolgte Dateien bereinigen möchten, verwenden Sie den folgenden Befehl. Aber seien Sie vorsichtig, bevor Sie dies ausführen, da es Ihren Arbeitsbereich, Index, HEAD löscht.
git reset --hard
Ich denke, Sie haben nicht verfolgte Verzeichnisse oder ignorierte Dateien (Build-Dateien) von gitignore in Ihrem Arbeitsbereich. Sie können sie mit dem folgenden Befehl entfernen.
git clean -dfx
-d
Entfernen Sie nicht verfolgte Verzeichnisse zusätzlich zu nicht verfolgten Dateien. Wenn ein nicht nachverfolgtes Verzeichnis von einem anderen Git-Repository verwaltet wird, wird es standardmäßig nicht entfernt. Verwenden Sie die Option -f zweimal, wenn Sie ein solches Verzeichnis wirklich entfernen möchten.
-f –force
Wenn die Git-Konfigurationsvariable clean.requireForce nicht auf false gesetzt ist, weigert sich git clean, Dateien oder Verzeichnisse zu löschen, es sei denn, es wird -f, -n oder -i angegeben. Git weigert sich, Verzeichnisse mit .git-Unterverzeichnissen oder -Dateien zu löschen, es sei denn, es wird ein zweites -f angegeben.
-x
Verwenden Sie nicht die standardmäßigen Ignorierregeln, die aus .gitignore (pro Verzeichnis) > und $GIT_DIR/info/exclude gelesen werden, aber verwenden Sie dennoch die Ignorierregeln, die mit den Optionen -e > angegeben sind. Dies ermöglicht das Entfernen aller nicht nachverfolgten Dateien, einschließlich Build-Produkten. Dies kann (möglicherweise in Verbindung mit git reset) verwendet werden, um ein makelloses Arbeitsverzeichnis zum Testen eines sauberen Builds zu erstellen.
Ich habe dieses X vermisst … es hat nicht geputzt =(
– Daniel N.
15. April um 7:51 Uhr
gzimmers
Wie andere Kommentare angegeben haben, müssen Sie das Flag -f hinzufügen.
Aber vielleicht haben Sie Probleme, nicht weil Sie –force nicht angeben, sondern weil Sie sich in einem anderen Unterverzeichnis befinden.
zum Beispiel, wenn ich ein Git-Repository habe, das sich in /myrepo/.git befindet
und ungetrackte Dateien im Unterverzeichnis /myrepo/untracked/file.txt,
aber das aktuelle Arbeitsverzeichnis meines Terminals ist /myrepo/src/.
git clean -fd wird nicht funktionieren. Sie müssen in das Projektstammverzeichnis wechseln, bevor Sie den Befehl ausführen.
TL; DR: git clean -fd bereinigt anscheinend nur nicht verfolgte Dateien und Verzeichnisse in und unterhalb des aktuellen Arbeitsverzeichnisses Ihres Terminals.
Danke! Dies war mein Problem (bei der Arbeit in einem Garn-Arbeitsbereich Mono Repo)
– Norfeldt
16. November 2021 um 7:21 Uhr
saravana va
versuchen zu benutzen
git clean -fd
Versuchen Sie, die Änderungen zu speichern,
git stash
wenn du beck alle änderungen nutzen willst,
git stash apply
Dies ist möglicherweise nicht das, was in OPs Fall passiert ist. Allerdings hatte ich das gleiche Problem. In meinem Fall war das Verzeichnis, das nicht bereinigt wurde, ein Submodul, das ich hinzugefügt habe, aber ich habe es anschließend zurückgesetzt. Ich musste alle Spuren davon entfernen .gitmodules, .git/config und .git/modules/<path to submodule> für git clean, um es zu entfernen, selbst wenn git status es als nicht verfolgt erkannt hat.
Es scheint mir, dass Sie -n oder -f angeben müssen. Aus den Manpages:
OPTIONS
-f, --force
If the Git configuration variable clean.requireForce is not set to false, git clean will refuse to delete files or
directories unless given -f, -n or -i. Git will refuse to delete directories with .git sub directory or file unless a second
-f is given.
Ich habe meine Frage aktualisiert. Ach, -f und -n auch dazu führen, dass nichts passiert.
– DA.
15. August 2018 um 21:11 Uhr
Danke, dass du das geteilt hast. In meinem Fall musste ich hinzufügen zwei-f Argumente, um alle meine ignorierten Dateien und Verzeichnisse löschen zu lassen.
– Feuerbusch
22. März um 16:09 Uhr
Meine Vermutung liegt daran git clear -f kehre nicht zurück nicht verfolgt Verzeichnisse, obwohl die Dokumentation lautet:
Reinigt den Arbeitsbaum von rekursiv Entfernen von Dateien, die nicht der Versionskontrolle unterliegen, beginnend mit dem aktuellen Verzeichnis.
…
Das -d docs räumt die Verwirrung auf:
Wenn kein angegeben ist, wird git clean normalerweise nicht in nicht verfolgte Verzeichnisse rekursiv, um zu vermeiden, dass zu viel entfernt wird. Geben Sie -d an, damit es auch in solche Verzeichnisse rekursiv ausgeführt wird.
…
Ich habe meine Frage aktualisiert. Ach, -f und -n auch dazu führen, dass nichts passiert.
– DA.
15. August 2018 um 21:11 Uhr
Danke, dass du das geteilt hast. In meinem Fall musste ich hinzufügen zwei-f Argumente, um alle meine ignorierten Dateien und Verzeichnisse löschen zu lassen.
– Feuerbusch
22. März um 16:09 Uhr
14293300cookie-checkGit clean bereinigt keine nicht nachverfolgten Dateienyes
If the Git configuration variable clean.requireForce is not set to false, git clean will refuse to delete files or directories unless given -f, -n or -i
– William Pursel
15. August 2018 um 21:06 Uhr
@WilliamPursell Danke. Ich habe meine Frage aktualisiert. Ach,
-f
und-n
auch dazu führen, dass nichts passiert.– DA.
15. August 2018 um 21:12 Uhr
was macht
git status
Show?– Raumelch
15. August 2018 um 21:18 Uhr
Aus welchem Verzeichnis führst du aus
git clean
? Es wird nur das aktuelle Arbeitsverzeichnis und darunter bereinigt.– William Pursel
15. August 2018 um 21:22 Uhr
Werden diese Dateien ignoriert? Hast du versucht hinzuzufügen
-x
?– William Pursel
15. August 2018 um 21:33 Uhr