8129 Stimmen

So entfernen Sie lokale (nicht verfolgte) Dateien aus dem aktuellen Git-Arbeitsbaum

Wie löschen Sie nicht verfolgte lokale Dateien aus Ihrem aktuellen Arbeitsbaum?

104 Stimmen

Dieser interaktive Git-Spickzettel ndpsoftware.com/git-cheatsheet.html zeigt den Git-Arbeitsbereich (Google liefert mit "Arbeitsbereich" bessere Ergebnisse als mit "Arbeitskopie").

38 Stimmen

Hinweis: Wenn Sie nur die algunos nicht verfolgte Dateien, aber nicht alle von ihnen , git clean hat jetzt eine interaktiv Modus! Siehe meine Antwort auf diese andere Frage : git 1.8.4+

0 Stimmen

Bevor Sie eine neue Antwort schreiben, bedenken Sie, dass es bereits mehr als 25 Antworten auf diese Frage gibt. Vergewissern Sie sich, dass Ihre Antwort einen Beitrag leistet, der nicht in den vorhandenen Antworten enthalten ist

2voto

Gediminas Punkte 6457

Ich bin mit den meisten gängigen Antworten hier gescheitert - Git löscht nicht nicht verfolgten Dateien aus dem Repository. Keine Ahnung warum. Dies ist meine super vereinfachte Antwort ohne SPEZIELLE GIT-BEFEHLSELBST!

Aufgabe: Löschen von nicht verfolgten Dateien aus dem Git-Repository:

  1. Verschieben Sie Dateien und Ordner für eine Weile aus Ihrem lokalen Projektordner an einen anderen Ort
  2. Löschen Sie alle Zeilen in .gitignore zu diesen Dateien und Ordnern für die Übertragung
  3. Git hinzufügen.
  4. Git commit -m "Repository von nicht verfolgten Dateien bereinigen"
  5. Git-Push

Alle Dateien und Ordner wurden aus dem Repository gelöscht.

Lassen Sie sie auf localhost wiederherstellen, wenn Sie sie brauchen:

  1. Verschieben Sie alle Dateien und Ordner, die Sie temporär verschoben haben, wieder zurück in den lokalen Projektordner
  2. Verschieben Sie alle Zeilen zu diesen Dateien und Ordnern zurück nach .gitignore
  3. Git hinzufügen.
  4. Git commit -m "Überprüfung oder Dateien erscheinen nicht mehr im Git-Repository"
  5. Git-Push

Sie sind fertig!

2voto

victorm1710 Punkte 737

Wenn nichts anderes funktioniert, kann man einfach alle Änderungen, die der Befehl "git status" auflistet, mit der folgenden Kombination entfernen:

git add -A && git commit -m temp && git reset --hard HEAD^

Dadurch werden zunächst alle Ihre Änderungen durchgeführt, dann eine temporäre Übertragung erstellt und anschließend verworfen.

2voto

Samir Kape Punkte 1263

Benutzung: git clean [-d] [-f] [-i] [-n] [-q] [-e ] [-x | -X] [--] ...

-q, --quiet           do not print names of files removed
-n, --dry-run         dry run
-f, --force           force
-i, --interactive     interactive cleaning
-d                    remove whole directories
-e, --exclude <pattern>
                      add <pattern> to ignore rules
-x                    remove ignored files, too
-X                    remove only ignored files

0voto

Vivek Punkte 190

Verwenden. git reset HEAD <file> um eine Datei zu entsperren

0voto

ideasman42 Punkte 35167

Ich verwende dieses Skript, das auflistet, was entfernt werden soll, und mich dann den Vorgang bestätigen lässt.

Das ist nützlich, denn manchmal habe ich Patches oder andere Dateien, die ich überprüfen möchte, bevor ich alles wegwische.

#!/bin/bash
readarray -t -d '' FILES < <(git ls-files -z --other --directory)
if [ "$FILES" = "" ]; then
    echo  "Nothing to clean!"
    exit 0
fi
echo -e "Dirty files:\n"
printf '  %s\n' "${FILES[@]}"
DO_REMOVE=0
while true; do
    echo ""
    read -p "Remove ${#FILES[@]} files? [y/n]: " choice
    case "$choice" in
        y|Y )
            DO_REMOVE=1
            break ;;
        n|N )
            echo "Exiting!"
            break ;;
        * ) echo "Invalid input, expected [Y/y/N/n]"
            continue ;;
    esac
done

if [ "$DO_REMOVE" -eq 1 ];then
    echo "Removing!"
    for f in "${FILES[@]}"; do
        rm -rfv -- "$f"
    done
fi

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