Как быстро включить все неотслеживаемые файлы и каталоги в .gitignore?

У меня есть большой репозиторий Git, в котором есть много случайных файлов и каталогов, которые следует игнорировать. Когда я запускаю git status, я получаю много шума.

Эти файлы и каталоги не следуют определенному шаблону. Я мог бы вручную добавить их один за другим в .gitignore, но это утомительно.

Есть ли быстрый способ добавить многие или все «неотслеживаемые файлы», возвращенные git status, в .gitignore? Это кажется настолько очевидной задачей, что я полагаю, что решение должно существовать.


person ddd kkk    schedule 15.01.2015    source источник
comment
Да, есть способ. В файле .gitignore вы можете игнорировать множество вещей сразу, только чтобы не игнорировать некоторые из них дальше по файлу; см. это. Однако для более конкретного ответа вам нужно будет рассказать нам о структуре вашего рабочего дерева.   -  person jub0bs    schedule 15.01.2015
comment
Почему бы не выделить и не скопировать все пути к файлам (сразу) из вывода git status и не вставить их в свой файл .gitignore?   -  person ajp15243    schedule 15.01.2015
comment
Это может помочь лучше упорядочить игнорируемые файлы, сохраняя их в одной игнорируемой подпапке.   -  person Bruce    schedule 15.01.2015
comment
Кто-то отредактировал заголовок моего вопроса, но теперь он больше не отражает моего первоначального намерения. Возможно, лучшим названием было бы «Как включить все неотслеживаемые файлы в .gitignore?».   -  person ddd kkk    schedule 15.01.2015


Ответы (2)


Вы можете создать простой псевдоним Git, а затем вызвать его следующим образом:

Отредактировано: в ответ на комментарий ddd kkk

git config alias.ignore-untracked "! git status -s | grep '??' | perl -pe 's/.{3}/\//' >>  .gitignore"
git ignore-untracked
person Joseph K. Strauss    schedule 15.01.2015

Основываясь на решении Джозефа Штрауса, окончательное определение псевдонима, которое я использую:

git config alias.ignore-untracked "! git status -s | grep '??' | cut -d\  -f2- | awk '{print \"/\" \$0; }' | sed '1i # ignore-untracked: $(date)' >> .gitignore"

Это добавляет к дополнениям в gitignore комментарий, указывающий дату добавления файлов.

Этот код выполняется следующим образом:

git ignore-untracked
person ddd kkk    schedule 15.01.2015