Відповіді:
Перевага .gitignore
полягає в тому, що його можна перевірити в самому сховищі, на відміну від цього .git/info/exclude
. Ще одна перевага полягає в тому, що ви можете мати декілька .gitignore
файлів, один у кожному каталозі / підкаталозі для конкретних правил ігнорування каталогів.git/info/exclude
.
Отже, .gitignore
доступний для всіх клонів сховища. Тому у великих командах все люди ігнорують такі ж файли прикладу *.db
, *.log
. І ви можете мати більш конкретні правила ігнорування через кілька .gitignore
.
.git/info/exclude
доступний лише для окремих клонів, отже, те, що одна людина ігнорує у своєму клоні, недоступне в клоні іншої людини. Наприклад, якщо хтось використовує Eclipse
для розробки, можливо, цей розробник має сенс додавати .build
папку в.git/info/exclude
оскільки інші розробники можуть не використовувати Eclipse.
Загалом, файли / правила ігнорування, які слід загально ігнорувати, повинні входити .gitignore
, інакше файли, які ви хочете ігнорувати лише у вашому локальному клоні, повинні переходити в.git/info/exclude
~/.gitignore
вашому коментарі вище я не зрозумів, який саме запис слід вписати . Я розумію, що правила ігнорування можуть бути на 3 рівнях - $PROJECT/.git/info/exclude
для (проекту, користувача) специфічних правил ігнорування, $PROJECT/<any number of directories>/.gitignore
що стосуються конкретних правил ігнорування проекту для будь-якого користувача в будь-якому місці (при реєстрації), ~/.gitignore
для специфічних для користувача правил ігнорування для будь-якого проекту для цього користувача на цій машині. Грунтуючись на мету, ви вибираєте місце , щоб помістити запис в.
git rm --cached <path-name>
видалите його з сховища, але збережіть на локальному рівні. git update-index --skip-worktree <path-name>
буде ігнорувати зміни у файлі, але зберігати їх у сховищі. З цікавості: Чому ви хочете виключити файл sln? Це важлива частина рішення .Net, правильно?
Google: 3 способи виключення файлів
.gitignore
застосовується до кожного клона цього сховища (у всіх, він матиме його),.git/info/exclude
стосується лише вашої локальної копії цього сховища (локальної, не надається спільним з іншими),~/.gitignore
застосовується до всіх сховищ на вашому комп’ютері (локальних, не спільних з іншими).3.
насправді потрібно встановити конфігурацію на комп’ютері:
git config --global core.excludesfile '~/.gitignore'
.git/info/excludes
, коли він повинен бути .git/info/exclude
, що підтверджено документацією, на яку він посилається.
Просто для того, щоб запропонувати наш досвід (у реальному світі): ми почали використовувати .git / info / виключити, коли нам довелося налаштувати деякі конфігураційні файли для кожного середовища розробки, але все ж хотіли, щоб джерело зберігалося в репо-репортажі та було доступне для інших розробників.
Таким чином, локальні файли після клонування та модифікації можуть бути виключені з комітетів, не впливаючи на оригінальні файли в репо, але і не обов'язково ігноруватися в репо.
Використовуйте .gitignore
для ігнорування правил, специфічних для проекту . Використовуйте exclude
або глобальний файл ігнорування для правил ігнорування, специфічних для вашого середовища .
Наприклад, мої глобальні файли ігнорування ігнорують тимчасові файли, згенеровані будь-яким редактором, який я використовую - це правило є специфічним для мого середовища та може відрізнятися від інших розробників цього ж проекту (можливо, вони використовують інший редактор). ОТОХ, мої .gitignore
файли проекту ігнорують такі речі, як ключі API та створюють артефакти - це для проекту , і вони повинні бути однаковими для всіх у проекті.
Чи допомагає це?