Як уже було сказано, для виключення зі статусу просто використовуйте:
git status -uno # must be "-uno" , not "-u no"
Якщо ви хочете назавжди ігнорувати неперевірені файли, котрі ви можете виконувати з кореня свого проекту:
git status --porcelain | grep '^??' | cut -c4- >> .gitignore
Кожен наступний дзвінок до git status
явно ігнорує ці файли.
ОНОВЛЕННЯ : наведена вище команда має незначний недолік: якщо у вас ще немає .gitignore
файлу, ваш gitignore проігнорує себе! Це відбувається тому, що файл .gitignore
створюється до того, як git status --porcelain
буде виконано. Тож якщо у вас ще немає .gitignore
файлу, рекомендую використовувати:
echo "$(git status --porcelain | grep '^??' | cut -c4-)" > .gitignore
Це створює підзарядку, яка завершується до створення .gitignore
файлу.
КОМАНДА ПОЯСНЕННЯ, оскільки я набираю багато голосів (дякую!) Я думаю, що краще пояснити команду трохи:
git status --porcelain
використовується замість того, git status --short
що в посібнику зазначено "Надати вихід у простому для розбору форматі для сценаріїв. Це схоже на короткий вихід, але залишатиметься стабільним у версіях git та незалежно від конфігурації користувача." Таким чином, ми маємо як розбірливість, так і стабільність;
grep '^??'
фільтрує лише рядки, починаючи з ??
яких, відповідно до посібника зі статусу git , відповідають файлам, що не відслідковуються;
cut -c4-
видаляє перші 3 символи кожного рядка, що дає нам лише відносний шлях до файлу, що не відслідковується;
- ці
|
символи є трубами , які проходять висновок попередньої команди на вхід наступної команди;
>>
і >
символи переадресація оператори , які додають висновок попередньої команди в файл або переписує / створює новий файл, відповідно.
ДРУГИЙ ВАРІАНТ для тих , хто вважає за краще , використовуючиsed
замість grep
і cut
, ось ще один спосіб:
git status --porcelain | sed -n -e 's/^?? //p' >> .gitignore