Нет необходимости в изяществе с filter-branch - это только в одном недавнем коммите. Если нет, просто удалите файл (git rm --cached <filename>
) и измените свой коммит (git commit --amend
). Опция --cached
указывает git удалять только копию в индексе (область размещения фиксации) и оставлять версию в рабочем дереве нетронутой.
Если это еще дальше в истории, вы можете использовать интерактивную перебазировку (git rebase -i <commit before the bad one> master
), выбрать edit
плохой коммит и rm / поправить, как и раньше. Обязательно добавьте его и в свой gitignore, конечно же.
Обратите внимание, что если вы уже выдвинули этот коммит, вам придется использовать push -f
, чтобы толкнуть не-быструю перемотку вперед, и если кто-то уже вытянул его, они будут раздражены раздел «восстановление из исходной версии» на странице руководства git-rebase.