Видалення невідстежуваних файлів
Робоче дерево збирає файли, з яких git ніколи не робив копії: чернетка,
debug-output.txt, dist/ від збірки, яка впала, node_modules із гілки, яку
ви покинули минулого місяця. У git є одна команда для цього — git clean — і це
єдина операція git, за якою не стоїть нічого. Цей вміст ніколи не був у
коміті, тож немає ні запису в рефлозі, ні стешу, ні скасування, ні жодного
заклинання git, яке поверне його назад.
Саме тому це та операція, яку люди запускають у терміналі й потім шкодують. Версія Gitcito показує весь список до того, як щось станеться.
⌘K → Видалити невідстежувані файли.

Що означає цей список
Кожен запис — це шлях, до якого міг би дотягнутися git clean, з розміром на
диску, у двох групах:
| Група | Що це | Вибрано за замовчуванням |
|---|---|---|
| Невідстежувані | Ніколи не комітилися, не підпадають під .gitignore |
Так |
| Ігноровані | Підпадають під .gitignore — результати збірки, кеші, .env |
Ні |
Цей поділ і є суттю. Ігноровані шляхи зазвичай нічого не варті — а іноді є
єдиною копією чогось важливого: локального .env, дампа бази даних,
завантаженої фікстури. Ніщо, що підпадає під .gitignore, ніколи не вибирається
за вас.
Повністю невідстежувана директорія — це один рядок, а не рядок на кожен
файл: tmp/, dist/, node_modules/ — бо саме з такою деталізацією git їх
видаляє, а перелік із 40 000 файлів ніхто не читає. Її розмір — це сума того, що
вона містить.
Тека, позначена як власний репозиторій, має свій .git: клон, який ви
кинули всередину цього репозиторію, або експеримент, який так і не під’єднали.
Git відмовляється їх видаляти (для цього йому потрібен -ff — прапорець, якого
Gitcito не пропонує) — їх забирає Кошик.
Кошик чи видалення
Перемістити в Кошик увімкнено за замовчуванням і взагалі не проходить через git: шляхи потрапляють до системного Кошика, звідки ви можете їх повернути. Це єдиний шлях, який видаляє вкладений репозиторій, і єдиний, що переживає помилково поставлену галочку.
Якщо його вимкнути, це буде справжній git clean -f -d -x рівно за вибраними
шляхами, і Gitcito попросить підтвердити, показавши перед вами кількість і
загальний розмір. Після цього не відновлюється нічого.
Обмеження, про які варто знати
- Лише невідстежувані файли. Змінений відстежуваний файл сюди не потрапляє — це Відкинути, що відновлює його з індексу або з HEAD.
- Список обмежений першими 400 шляхами. Якщо в репозиторії їх більше, видаліть те, що показано, і натисніть Пересканувати, щоб побачити решту.
- Розміри директорій приблизні для дуже великих дерев: сканування
зупиняється після 20 000 файлів, тож гігантський
node_modulesможе виглядати меншим, ніж він є. Більшим він ніколи не виглядає. - Сканування — це знімок. Якщо збірка пише файли, поки діалог відкритий, натисніть Пересканувати, перш ніж щось видаляти.
- Шляхи звіряються з власним списком придатних до видалення файлів git, перш ніж щось буде зачеплено, тож нічого відстежуваного через цей діалог видалити не можна — навіть за іменем.
Дивіться також: Індексація та відкидання змін · Ігнорування файлів · Видалення файлу з історії