В Git удаление файлов DLL и PDB, которые были случайно совершены

У меня есть репозиторий git, который мне нужен, чтобы работать без конфликтов. Это .net/С# mvc repo. Проблема заключается в dll и pdb файлах. Эти файлы были случайно привязаны к репо, поэтому, когда я делаю свой первоначальный git pull, я получаю все эти файлы, совершенные другим разработчиком.

Я установил .gitignore следующим образом:

bin/
obj/
App_data/

Из других сообщений я считаю, что это все, что мне нужно сделать, однако, если я создам свой проект и запускаю git status, он показывает многочисленные файлы dll и pdb, которые будут сделаны.

Это потому, что эти файлы существовали в репо, когда я клонировал его? Если да, то каков наилучший способ удаления этих файлов?

Ответ 1

Вам нужно сначала удалить этот файл (git rm), прежде чем просматривать свои реквизиты .gitignore, примененные к вашему репозиторию git.

Вы можете удалить эти файлы только из индекса, если хотите сохранить их на рабочем дереве.

git rm -r --cached a.dll

(см. ".gitignore файл не игнорируется)

Но для сгенерированных файлов не имеет значения, удалены ли они: вы создадите их при следующей компиляции, но проигнорируете их, потому что они больше не являются частью индекса.

Ответ 2

Это очень распространенный вопрос, и обычный ответ заключается в том, что вы не можете очистить предыдущие коммиты, но для этого есть специальные инструменты. git фильтр и проще очиститель репозитория BFG: http://rtyley.github.io/bfg-repo-cleaner/#usage

Ответ 3

Ваш файл .gitignore содержит ошибку. Должно быть так:

bin
obj
App_data