В 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