2016-07-25 11 views
2

Ich möchte eine bestimmte Datei von nicht geordneten Dateien in Git mit Shell-Befehl löschen. aber als ich dort gesucht haben, ist eine Lösung, die nur für wieGit Shell: Wie können wir bestimmte Dateien aus nicht gepackten Dateien entfernen

-f - force, 
-d - directories too, 
-x - remove ignored files too. 

betrachten lassen Datei als wie gitignore.gitignore, Am gescheitert, wenn ich das versucht Befehl git rm gitignore.gitignore für dieses Anliegen. würde jedes erwartete Ergebnis schätzen.

+0

verwenden müssen Sie fragen, wie eine Datei hinzufügen, um gitignore? – Thilo

Antwort

11

Wenn die Datei nicht von git verfolgt wird, ist es nicht gits Aufgabe, sie zu entfernen. Verwenden Sie einfach normale Shell-Befehle wie rm anstelle von git rm.

Wenn Sie alle nicht nachverfolgten Dateien löschen möchten, können Sie eine git clean tun.

2

Wenn Sie eine Datei in Ihrem Arbeits Baum haben & Sie es entfernen wollen, werden Sie git rm

verwenden Gerade vom doc

git-rm - Entfernen Sie Dateien aus dem Arbeits Baum und von der index

Jetzt warum verwenden Sie git rm anstelle von rm zum Entfernen der Datei von Ihrem Arbeitsbaum

Die Antwort ist - Wenn Sie nur rm verwenden, müssen Sie es mit git add <fileRemoved> folgen. git rm macht dies in einem Schritt.

Sie können auch git rm --cached verwenden, das die Datei aus dem Index löscht (beim nächsten Commit zum Löschen vorlag), aber Ihre Kopie im lokalen Dateisystem behält.

Dieser Teil von https://stackoverflow.com/a/7434558 genommen

Um untracked Datei zu entfernen Sie rm für Ketten-Datei verwenden können, die in Ihrem Quellbaum enthalten ist Sie git rm

1

Könnte nur verwenden müssen -n ist praktisch, um zu überprüfen, was Sie zuerst tun.

NAME 
     git-clean - Remove untracked files from the working tree 

OPTIONS 
     -d 
      Remove untracked directories in addition to untracked files. If an untracked directory is managed by a different Git repository, it is not removed by default. Use -f option twice if 
      you really want to remove such a directory. 

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

     -n, --dry-run 
      Don't actually remove anything, just show what would be done. 

Wenn Sie jedoch Uncommited Änderungen haben würden Sie git checkout -- .