2016-11-30 5 views
2

Ich habe eine Festschreibung und git diff-tree --no-commit-id --name-only -r fef3ea9ff1ba8d62049fd5f3bc4e2e8a2c08bfd3 gibt alle Dateien in der Festschreibung aus.Wie alle .pdf-Dateien von einem Git-Push zu entfernen

Die Dateien sind in verschiedenen Ordnern und viele sind PDF-Dateien

Ich versuche: git rm *.pdf

und es sagt: fatal: pathspec '*.pdf' did not match any files

Wie entferne ich alle PDF-Dateien aus dem begehen?

EDIT 1

Ich versuche: git rm -r *.pdf und es gibt:

fatal: pathspec '*.pdf' did not match any files 

EDIT 2

sudo git rm -r */*.pdf 

gibt

fatal: pathspec 'MyFolder/my_file.pdf' did not match any files 

my_file.pdf ist die erste Datei in der Ausgabe git diff-tree aufgeführt

+0

'sudo git'? Warum? – Melebius

Antwort

1
git rm -r */*.pdf 
  • Sie die rekursive Flag und das Präfix die Filespec mit */
+0

Sie sind richtig, tut mir leid, ich mache das und es gibt das gleiche Ergebnis. – Rorschach

+0

Entschuldigung - bearbeitet das oben. – Mark

1

aktivieren müssen Wenn ein git status diejenigen zeigt Dateien, die aus Ihrem aktuellen Arbeitsbaum gelöscht wurden, können Sie sicherstellen, dass sie für das nächste Festschreiben als gelöscht aufgezeichnet werden:

wenn sie nicht gelöscht werden, können Sie sie, um sie zu finden und entfernen:

git ls-files | grep '\.pdf$' | xargs git rm 

Wenn sie in Vergangenheit vorhanden sind verpflichtet, und Sie möchten Ihre Geschichte von jedem PDF-Datei reinigen, überprüfen BFG repo cleaner (und seine issue 78) :

bfg -D "*.pdf" myrepo.git 
1

alle *.pdf-Dateien zu entfernen, können Sie tun:

git ls-files '*.pdf' | xargs git rm 

Dies setzt voraus, tha t Die Dateien sind noch vorhanden.

Um die meisten Top-commit so zu aktualisieren, dass sie die Dateien (zusätzlich zu was auch immer sonst ändert) entfernt, was Sie tun:

git commit --amend 

die Dateien von einem entfernen verpflichten, dass irgendwo in der ist Aktuelle Geschichte, suchen Sie nach git rebase --interactive und machen Sie die obigen zwei, nachdem Sie das Commit markiert haben, um mit edit in der TODO-Liste geändert zu werden, die Ihnen präsentiert wird.

Um die Dateien von allen Commits zu entfernen, die tief im Verlauf verborgen sind, suchen Sie nach git filter-branch.

In allen Fällen gelten die Vorbehalte für das Umschreiben des Verlaufs, der bereits veröffentlicht wurde.

Verwandte Themen