Як я міг ігнорувати папки bin та obj із сховища git?


111

Я хочу ігнорувати папки bin та obj зі свого сховища git. Як я з’ясував, не існує простого способу зробити це в .gitignore. Отже, чи є інший спосіб? Використовуєте чисте рішення у Visual Studio?


Для мене це добре - я додаю слова 'bin' та 'obj' як окремі рядки у свій .gitignore файл
Тім Робінсон,

1
І якщо рішення складається з багатьох проектів, а не одного?
chester89

Чи можете ви розміщувати саме те, що ви намагаєтесь, а що не працює. objа binна верхньому рівні .gitignore повинен ігнорувати все, що називається, objабо binна всіх нижчих рівнях.
CB Bailey

2
Я розумію, що вміст .gitignore застосовується у кожному підкаталозі, тому просто "bin" та "obj" працюють скрізь. Опублікую мою .gitignore у відповідь.
Тім Робінсон,

Відповіді:


164

Я не впевнений, чому це не працює для вас. Якщо це допомагає, ось типовий .gitignore файл одного з моїх проектів Visual Studio / git:

*.suo
*.user
_ReSharper.*
bin
obj
packages

4
Я також додаю, packagesоскільки ви можете легко повторно завантажити їх з NuGet
Michal Ciechan

1
він не працює, коли ви спочатку вводите всі файли, а потім додаєте .gitignore файл до репо-файлу та виконує його. Нещодавно проігноровані файли все ще відображатимуться як змінені (наприклад, якщо ви відновите, наприклад).
vlad2135

7
Нещодавно я користувався запропонованим тут файлом .gitignore : github.com/github/gitignore/blob/master/VisualStudio.gitignore з великим успіхом.
BigTFromAZ

1
@BigTFromAZ Ви повинні додати, що як відповідь, це набагато краще, ніж прийняте!
Авраам Ісроель

61

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

git rm -r --cached .

git add .

тоді

git commit -am "Remove ignored files"

Однак це ігнорує мою папку сценаріїв, яку я згодом включив у сховище.


Це працює добре. Але Vscode не зміг знайти змінений код. Я щось змінив сам, і підштовхнув його до майстра походження. Тоді це спрацювало. :)
Дентракс

У мене є рішення з багатьма проектами, і чомусь додається git. ніколи не завершує.
Чаккі

Great Arvind !, розробник-новачок об'єднав усі bin / і obj / у нашу робочу гілку (пропускну політику ... я не знаю як!), І це було способом видалення всіх цих файлів з репо.
equintas

Новачок мене (принаймні, щоб git), я це робив собі. Ніколи не думав rm, а потім додавати назад, тому що я не розумів, що git rm видаляє лише елементи з індексу, а не диск. Тож якщо я правильно розумію, ваші перші дві команди відновили індекс, видаливши все з індексу та додавши все назад, застосувавши фільтри .gitignore. Тоді команда робить це таким чином у сховищі. Дуже розумний.
BigTFromAZ

Чудово! Це працювало для мене ідеально. всі .vs, obj, bin та інші ігноровані файли.
Стенлі Окпала Нвоса

9

Якщо ви використовуєте Visual Studio, то для цього є простий спосіб.

  1. Відкрийте Провідник команди
  2. Клацніть на налаштуваннях
  3. Налаштування сховища
  4. У розділі файлу Ігнорувати та атрибути Клацніть на Додати біля файла Ігнорувати.

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

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


3
  • Знайдіть binіobj папки в Провіднику Windows
  • Клацніть правою кнопкою миші TortoiseGit> Видалити та додати до списку ігнорування> бін
  • Клацніть правою кнопкою миші TortoiseGit> Видалити та додати до списку ігнорування> obj

1
Це прекрасно працює. дякую @Denys Wessels
Biswajit Panday

2

Якщо ви хочете ігнорувати bin та obj у ВСІХ своїх проектах, тоді ви можете використовувати (від сторінки gitignore man )

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

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


Хороша інформація, але він мав на увазі всі свої проекти Visual Studio у цьому рішенні, а не ВСІ проекти на машині.
AhHatem

2
Хоча, швидше за все, йому ніколи не буде цікаво здійснити binіobj папок в будь-якому рішенні. :)
ПАМ'ЯТКА

1

Якщо ви раніше створили папки bin та obj, додавши їх у .gitignore, вони не видалять їх автоматично. Наприклад, потрібно виконати видалення цих папок, git rm -rf objа git rm -rf yourProject/obj потім виконати видалення


0

Якщо ви спробуєте через дерево-джерело, і досі файли ігнорування не надходять, перейдіть до інструментів -> параметр-> Git та виберіть розташування .gitignore введіть тут опис зображення


0

У моєму випадку папки bin та obj були вкладені у папку Project з кореневого файлу .gitignore, тому мені довелося додати її як нижче:

[PROJECT_FOLDER_NAME] / бін
[PROJECT_FOLDER_NAME] / obj

Замініть PROJECT_FOLDER_NAME на ім'я папки вашого проекту

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.