Git удалить * .sln.docstates из хранилища - PullRequest
1 голос
/ 24 июня 2011

Каким-то образом я случайно зафиксировал файл .sln.docstates.Теперь я добавил его в gitignore, однако он не будет проигнорирован.Я думаю, это потому, что я уже совершил это однажды.Не знаю когда!

Есть ли возможность заставить работать это правило gitignore?Как я могу удалить его из своего хранилища?

*. Sln.docstates

Ответы [ 2 ]

3 голосов
/ 24 июня 2011

Удалите это так:

$ git rm --cached \*.sln.docstates

… тогда .gitignore должно быть выполнено.

1 голос
/ 24 июня 2011

Зависит от того, передали ли вы изменения репозитория или изменения локальны.

Если вы уже передали изменения в удаленный репозиторий, то вы не должны переписывать историю.

Если ваши изменения являются только локальными, вы используете git log .sln.docstates, чтобы узнать историю файлов и найти коммит, в который вы добавили файл.Для удаления файла из коммитов требуется некоторое git filter-branch magic , см. Соответствующий ответ .

Ситуация проще, если файл присутствует только в большинственедавний неопубликованный коммит: вы можете использовать git rm --cached .sln.docstates и git commit --amend.(Переключатель --cached указывает git не трогать ваши файлы и удалять его только из индекса, а затем вы изменяете свой последний коммит вместо создания нового с помощью переключателя --amend.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...