Как я мог игнорировать папки bin и obj из репозитория git?
113
Я хочу игнорировать папки bin и obj из моего репозитория git. Как я выяснил, в .gitignore нет простого способа сделать это. Итак, есть ли другой способ? Используете чистое решение в Visual Studio?
У меня все работает нормально - я добавляю слова bin и obj отдельными строками в моем файле .gitignore
Тим Робинсон
1
А если решение состоит из множества проектов, а не из одного?
chester89
Можете ли вы опубликовать именно то, что вы пытаетесь, а что не работает? objа binна верхнем уровне .gitignore должен игнорировать все вызываемое objили binна всех более низких уровнях.
CB Bailey,
2
Насколько я понимаю, содержимое .gitignore применяется в каждом подкаталоге, поэтому простые bin и obj работают везде. Отправлю мой .gitignore в ответ.
Тим Робинсон,
Ответы:
166
Я не уверен, почему это не работает для вас. Если это поможет, вот типичный файл .gitignore из одного из моих проектов Visual Studio / git:
Я также добавляю, так packagesкак вы можете легко повторно загрузить их с NuGet
Михал Цехан
1
он не работает, когда вы сначала фиксируете все файлы, а затем добавляете файл .gitignore в свое репо и фиксируете его. Новые проигнорированные файлы по-прежнему будут отображаться как измененные (например, при повторной сборке).
@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, есть простой способ сделать это.
Откройте Team Explorer
Нажмите на настройки
Настройки репозитория
В разделе "Игнорировать файл атрибутов" нажмите "Добавить" рядом с "Игнорировать файл".
Он создаст файл .gitignore по умолчанию, который будет игнорировать большинство общих папок и файлов, которые будут использоваться фреймворком / языком.
Хорошая информация, но он имел в виду все свои проекты Visual Studio в этом решении, а не ВСЕ проекты на машине.
AhHatem
2
Хотя , скорее всего , он никогда не будет заинтересован в совершали binи objпапок в любом решении. :)
MEMark
1
Если вы ранее зафиксировали папки bin и obj, добавление их в .gitignore не приведет к их автоматическому удалению. Вам необходимо подтвердить удаление этих папок, например,
git rm -rf objили git rm -rf yourProject/obj
затем зафиксировать удаление
Если вы пытаетесь пройти через дерево исходных текстов, но файлы игнорирования не поступают, перейдите к инструментам -> option-> Git, а затем выберите местоположение .gitignore
obj
аbin
на верхнем уровне .gitignore должен игнорировать все вызываемоеobj
илиbin
на всех более низких уровнях.Ответы:
Я не уверен, почему это не работает для вас. Если это поможет, вот типичный файл .gitignore из одного из моих проектов Visual Studio / git:
источник
packages
как вы можете легко повторно загрузить их с NuGetпростое создание записи в gitignore может не игнорировать файлы, вам может потребоваться зафиксировать его. Я использовал следующий метод и работал у меня
затем
Однако это игнорирует мою папку сценариев, которую я позже включил в репозиторий.
источник
Если вы используете Visual Studio, есть простой способ сделать это.
Он создаст файл .gitignore по умолчанию, который будет игнорировать большинство общих папок и файлов, которые будут использоваться фреймворком / языком.
источник
bin
иobj
папок в проводнике Windowsисточник
Если вы хотите игнорировать bin и obj во ВСЕХ своих проектах, вы можете использовать (из справочной страницы gitignore )
core.excludesfile можно установить в конфигурационном файле, который в Unix находится в ~ / .gitconfig - я не знаю, где он находится под Windows.
источник
bin
иobj
папок в любом решении. :)Если вы ранее зафиксировали папки bin и obj, добавление их в .gitignore не приведет к их автоматическому удалению. Вам необходимо подтвердить удаление этих папок, например,
git rm -rf obj
илиgit rm -rf yourProject/obj
затем зафиксировать удалениеисточник
Если вы пытаетесь пройти через дерево исходных текстов, но файлы игнорирования не поступают, перейдите к инструментам -> option-> Git, а затем выберите местоположение .gitignore
источник
В моем случае папки bin и obj были вложены в папку Project из корневого файла .gitignore, поэтому мне пришлось добавить его, как показано ниже:
[PROJECT_FOLDER_NAME] / bin
[PROJECT_FOLDER_NAME] / obj
Замените PROJECT_FOLDER_NAME именем папки вашего проекта
источник