git не распознает записи в моем файле gitignore - PullRequest
0 голосов
/ 11 октября 2018

Я следовал указаниям, найденным здесь , и я до сих пор получаю ту же горстку файлов.Даже если я специально вызываю git -rm --cached those/files*, когда я вызываю git status, я все равно вижу те же самые файлы в разделе «Файлы без отслеживания»:

Вот как выглядит мой файл gitignore:

# Files that exceed 100MB #
###########################
./data/9-26-18/altrans/SkinSunExposedLowerleg.Altrans.bestPerLink
./data/9-26-18/altrans/MuscleSkeletal.Altrans.bestPerLink
./data/9-26-18/altrans/Thyroid.Altrans.bestPerLink
./data/9-26-18/altrans/WholeBlood.Altrans.bestPerLink
./data/9-26-18/altrans/NerveTibial.Altrans.bestPerLink
./data/9-26-18/altrans/HeartLeftVentricle.Altrans.bestPerLink
./data/9-26-18/altrans/Lung.Altrans.bestPerLink
./data/9-26-18/altrans/AdiposeSubcutaneous.Altrans.bestPerLink
./data/9-26-18/altrans/ArteryTibial.Altrans.bestPerLink

Как мне сделать так, чтобы эти файлы вместе с любыми другими файлами, которые я ввожу в .gitignore, размер которых в будущем превысит 100 МБ, даже не отслеживались, а полностью игнорировались?

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Нет встроенного "игнорировать по размеру".Вы можете написать программу, которая проверяет файлы, а для тех, которые превышают некоторый порог размера, обновляет .gitignore.Очень простая версия сценария оболочки для поиска «больших файлов»:

find . -name .git -prune -o -size +100M -print | cut -c3-

(cut -c3- отбрасывает ведущий ./, который печатает find).

Вы можетепропустите эти имена через git check-ignore, чтобы увидеть, не были ли они уже проигнорированы, и, если нет, добавьте их в .gitignore:

[find expression as above] |
while read -r name; do
     git check-ignore -q "$name" || printf '%s\n' $name >> .gitignore
done

Обратите внимание, что это предполагает, что сам файл .gitignore не станет настолько большимкак вызвать проблемы.В противном случае обязательно удалите .gitignore как игнорируемый файл, даже если .gitignore превышает пороговое значение вашего размера, например:

find . -name .git -prune -o -name .gitignore -prune -o -size +$limit -print

, где $limit - это пороговое значение размера (100M для 100 мегабайт,10 КБ за 10 КБ и т. Д.).

0 голосов
/ 11 октября 2018

Блин, мне кажется, я только что понял проблему: по какой-то причине gitignore не подхватит файлы, которым предшествует точка.Таким образом, я должен удалить эти точки для gitignore, чтобы работать, по-видимому.Если бы кто-то мог сказать мне, почему это так, я был бы очень признателен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...