2015-01-15 3 views
0

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

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

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

+0

Да, есть способ. В файле '.gitignore' вы можете игнорировать множество вещей за один раз, только для того, чтобы« unignore »некоторые из них дальше по файлу; см. [this] (http://stackoverflow.com/questions/25715898/whats-the-difference-between-git-ignoring-directory-and-directory). Для более конкретного ответа, чем это, вам нужно будет рассказать нам о структуре вашего рабочего дерева. – Jubobs

+0

Почему бы не выделить и не скопировать все пути к файлу (сразу) из вывода 'git status' и вставить их в ваш файл' .gitignore'? – ajp15243

+0

Это может помочь организовать ваши проигнорированные файлы лучше, сохраняя их в одной игнорируемой вложенной папке. – Bruce

ответ

1

Вы можете создать простой Git псевдоним, а затем вызвать его так:

Отредактировано: В réponse в ДДД комментарий KKK в

git config alias.ignore-untracked "! git status -s | grep '??' | perl -pe 's/.{3}/\//' >> .gitignore" 
git ignore-untracked 
0

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

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

Это предваряется дополнения к gitignore с комментарием, что указывает на дату диафрагменное iles.

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

git ignore-untracked