2017-05-15 1 views
0

Ich versuche, ein privates Projekt, um aufzuräumen, damit ich es veröffentlichen können - verschiedene Dateien aus der Geschichte zu entfernen usw.Wie kann ich Git-Filter-Zweig auf dem Root-Commit ausführen?

Ich versuche, ein Makefile mit git filter-branch zu entfernen. Hier ist die Befehlszeile Ich verwende:

$ git filter-branch -f --index-filter 'git update-index --remove Makefile' 08a7d1..HEAD 

Allerdings, wenn ich git log -- Makefile laufen, zeigt es das Makefile in der Wurzel hinzugefügt werden begehen, dann entfernt wird, in der Commit unmittelbar nach der Wurzel begehen.

Wie kann ich git filter-branch auf dem Root-Commit als auch laufen lassen?

Antwort

0

Das Problem besteht darin, dass das startende Festschreiben in dem Commit-Bereich, den Sie angaben (08a7d1..HEAD) nicht enthalten ist. Also im Grunde sagt es "alles, was passiert ist nach08a7d1, den ganzen Weg bis zu HEAD."

Die Übergabe des Festschreibbereichs an git filter-branch ist optional. Wenn Sie es weglassen, wird es auf alle commits, den ganzen Weg zurück und einschließlich der root ausgeführt werden. Also:

$ git filter-branch -f --index-filter 'git update-index --remove Makefile' 

Das sollte den Trick tun.

Verwandte Themen