Як ігнорувати всі приховані каталоги / файли рекурсивно у сховищі git?


128

Я хотів би, щоб Git ігнорував усі приховані файли та каталоги. тобто

  • .aptitude
  • .ssh/
  • .bash_rc
  • config/.hidden

Чи існує просте правило, щоб це висвітлити без конкретного додавання кожного запису?

Відповіді:


165

Просто додайте шаблон .gitignore

.*
!/.gitignore

Редагувати: додав сам .gitignoreфайл (має значення, якщо він ще не зафіксований).


3
Ви можете змусити додати деякі файли, необхідні після цього. напр. файл .htaccess. Виходячи з ваших вимог, звичайно.
dakdad

3
@dakdad: Дякую за пропозицію. Покращили відповідь. Якщо у По є якісь спеціальні файли, як .htaccessуже зареєстровані, вони продовжують дотримуватися. gitignoreважливо лише для нових файлів.
Даніель Бьомер

@ DanielBöhmer Можливо, це знімає тему, але чи є причина для того, щоб ігнорувати лише цей файл, /.gitignoreа не кожен .gitignoreфайл незалежно від того, де він знаходиться? Тобто чому не перелічити !.gitignore(без косої риски)?
Джейсон Янг

1
@JasonYoung Цікаве запитання. Що ж, цей зразок не ігнорує лише сам файл. Я вважаю це більш лаконічним, без побічних ефектів, наприклад, копіювати та вставляти. Звичайно, ви, ймовірно, можете просто відігнорувати будь-які .gitignoreфайли у вашому .gitignoreфайлі верхнього рівня . Але цей вибір залежить від вас.
Даніель Бьомер

64

.gitignore вплине лише на файли, які вже не додані.

Щоб зробити нові записи .gitignore, впливають на всі файли

  1. Внесіть зміни до .gitignore
  2. git commit -a -m "Pre .gitignore changes"
  3. git rm -r --cached .
  4. git add .
  5. git commit -a -m "Post .gitignore changes"
  6. git status повинен вивести "нічого для фіксації (робочий каталог чистий)" `

Тут є ключовим рядком "ще не додано", тому що якщо ви вже зав'язали заданий файл, ігнор більше не буде працювати над ним, ви повинні видалити його з сховища, і наступного разу, коли ви створите його .gitignore буде ігнорувати це.
Георгій Пеєв

21

В .git/info/exclude, додайте наступний рядок:

.*

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

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