.проект gitignore и Visual Studio: игнорировать каталог bin / Debug, но не каталог bin/Release

у меня есть проект C# Visual Studio в репозитории git. Я хочу игнорировать содержимое bin/Debug каталог, но не содержимое '. Я добавил bin/Debug мой .gitignore файл, но он, похоже, не работает - он включает в себя все содержимое

8 ответов


вам не нужно ничего удалять. После того, как вы добавили .gitignore файл, выполните эту команду, чтобы очистить кэш, а затем этап и фиксации снова:

git rm -r . --cached

вот то, что мы использовали в последнее время, он удаляет все resharper генерируемые вещи и некоторые другие важные вещи. Обратите внимание, что мы не фиксируем наш каталог выпуска, поэтому вы не должны включать Release/ в своем .gitignore, но чтобы ответить на ваш вопрос, вы должны включить Debug/.

/build/
*.suo
*.user
_ReSharper.*/
*.sdf
bin/
obj/
Debug/
Release/
*.opensdf
*.tlog
*.log
TestResult.xml
*.VisualState.xml
Version.cs
Version.h
Version.cpp

обновление

вот довольно полный пример github:


это обычно происходит потому, что .gitignore был добавлен после того, как файлы были зафиксированы. Этот.gitignore говорит git игнорировать неотслеженные файлы, которые соответствуют, как только материал зафиксирован, игнорирование больше не будет работать. Один из способов исправить это-удалить папку bin/debug (вручную через explorer/powershell/bash), а затем зафиксировать удаления. Как только это будет сделано, игнорирование должно работать так, как вы ожидаете.

  1. удалить файлы / папки
  2. git add -A
  3. git commit

Я знаю, что это старый вопрос, но я решил поделиться своим подходом, который исключает точно bin/Debug, bin/Release и т. д.

*/**/bin/Debug
*/**/bin/Release
*/**/obj/Debug
*/**/obj/Release

Запуск следующей команды работал для меня (благодаря "orourkedd"):

git rm -r . --cached

Я вручную добавил .gitignore файл, но он не был принят во внимание, пока я не выполнил эту команду.

мне тогда пришлось совершить еще раз и все хорошо идти сейчас. /bin и /obj папки теперь правильно исключены.


я исправил это путем замены bin/Debug с Debug.

это также повлияло бы на игнорирование


это работает для меня:

*.exe
*.pdb
*.manifest
*.cache

Если вы используете GitHub Desktop, как я его использую, вы можете просто щелкнуть правой кнопкой мыши файл, который вы хотите исключить или щелкните его правой кнопкой мыши и исключить по расширению:

enter image description here

это автоматически создаст .gitignore файл для вас с кодом, как указано выше. Вы можете скачать GitHub Desktop здесь:рабочий стол GitHub для Windows 64-бит.


Это может быть немного не по теме, но когда я начинаю создавать новый проект, я обычно использую GitIgnore.ИО для создания моего первоначального файла gitignore, а затем я его оттуда в соответствии с моими потребностями.