Как я мог игнорировать папки bin и obj из репозитория git?

113

Я хочу игнорировать папки bin и obj из моего репозитория git. Как я выяснил, в .gitignore нет простого способа сделать это. Итак, есть ли другой способ? Используете чистое решение в Visual Studio?

Chester89
источник
У меня все работает нормально - я добавляю слова bin и obj отдельными строками в моем файле .gitignore
Тим Робинсон
1
А если решение состоит из множества проектов, а не из одного?
chester89
Можете ли вы опубликовать именно то, что вы пытаетесь, а что не работает? objа binна верхнем уровне .gitignore должен игнорировать все вызываемое objили binна всех более низких уровнях.
CB Bailey,
2
Насколько я понимаю, содержимое .gitignore применяется в каждом подкаталоге, поэтому простые bin и obj работают везде. Отправлю мой .gitignore в ответ.
Тим Робинсон,

Ответы:

166

Я не уверен, почему это не работает для вас. Если это поможет, вот типичный файл .gitignore из одного из моих проектов Visual Studio / git:

*.suo
*.user
_ReSharper.*
bin
obj
packages
Тим Робинсон
источник
4
Я также добавляю, так packagesкак вы можете легко повторно загрузить их с NuGet
Михал Цехан
1
он не работает, когда вы сначала фиксируете все файлы, а затем добавляете файл .gitignore в свое репо и фиксируете его. Новые проигнорированные файлы по-прежнему будут отображаться как измененные (например, при повторной сборке).
vlad2135
7
Недавно я с большим успехом использовал предложенный файл .gitignore, найденный здесь: github.com/github/gitignore/blob/master/VisualStudio.gitignore .
BigTFromAZ
1
@BigTFromAZ Вы должны добавить, что в качестве ответа он намного лучше принятого!
Avrohom Yisroel
62

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

git rm -r --cached .

git add .

затем

git commit -am "Remove ignored files"

Однако это игнорирует мою папку сценариев, которую я позже включил в репозиторий.

Арвинд Крмар
источник
Работает нормально. Но Vscode не смог найти измененный код. Я что-то поменял сам и передал в origin master. Тогда это сработало. :)
Dentrax
У меня есть решение со многими проектами, и по какой-то причине git add. никогда не завершается.
Чаки
Отличный Арвинд !, новичок-разработчик объединил все bin / и obj / в нашу рабочую ветку (пропуская политики ... я не знаю как!), И таким образом можно было удалить все эти файлы из репо.
equintas
Новичок (по крайней мере, в git), я сделал это с собой. Никогда не думал о rm, а затем добавить обратно, потому что я не понимал, что git rm удаляет только элементы из индекса, а не с диска. Итак, если я правильно понимаю, ваши первые две команды перестроили индекс, удалив все из индекса и добавив все обратно, применив фильтры .gitignore. Затем коммит делает это в репозитории. Очень умный.
BigTFromAZ
Большой! У меня это сработало отлично. все файлы .vs, obj, bin и другие игнорируемые файлы.
Стэнли Окпала Нвоса,
11

Если вы используете Visual Studio, есть простой способ сделать это.

  1. Откройте Team Explorer
  2. Нажмите на настройки
  3. Настройки репозитория
  4. В разделе "Игнорировать файл атрибутов" нажмите "Добавить" рядом с "Игнорировать файл".

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

введите описание изображения здесь

Нилай
источник
3
  • Найдите binи objпапок в проводнике Windows
  • Щелкните правой кнопкой мыши TortoiseGit> Удалить и добавьте в список игнорирования> bin
  • Щелкните правой кнопкой мыши TortoiseGit> Удалить и добавьте в список игнорирования> obj
Денис Весселс
источник
2

Если вы хотите игнорировать bin и obj во ВСЕХ своих проектах, вы можете использовать (из справочной страницы gitignore )

Шаблоны читаются из файла, указанного в конфигурационной переменной core.excludesfile.

core.excludesfile можно установить в конфигурационном файле, который в Unix находится в ~ / .gitconfig - я не знаю, где он находится под Windows.

мммммм
источник
Хорошая информация, но он имел в виду все свои проекты Visual Studio в этом решении, а не ВСЕ проекты на машине.
AhHatem
2
Хотя , скорее всего , он никогда не будет заинтересован в совершали binи objпапок в любом решении. :)
MEMark
1

Если вы ранее зафиксировали папки bin и obj, добавление их в .gitignore не приведет к их автоматическому удалению. Вам необходимо подтвердить удаление этих папок, например, git rm -rf objили git rm -rf yourProject/obj затем зафиксировать удаление

Рафаэль Пинель
источник
0

Если вы пытаетесь пройти через дерево исходных текстов, но файлы игнорирования не поступают, перейдите к инструментам -> option-> Git, а затем выберите местоположение .gitignore введите описание изображения здесь

макду
источник
0

В моем случае папки bin и obj были вложены в папку Project из корневого файла .gitignore, поэтому мне пришлось добавить его, как показано ниже:

[PROJECT_FOLDER_NAME] / bin
[PROJECT_FOLDER_NAME] / obj

Замените PROJECT_FOLDER_NAME именем папки вашего проекта

pk_code
источник