Как мне получить git add work только для текстовых файлов? - PullRequest
2 голосов
/ 21 апреля 2019

На сервере Debian я хочу автоматизировать команду git add, которая добавляет только текстовые файлы, а не двоичные, из дерева папок.

В документации git я видел, что git не предлагает эту функцию, поэтому нашел следующее решение:

/usr/bin/find . -type f -exec grep -Iq . {} \; -and -print0 | /usr/bin/xargs -0 /usr/bin/git add

Он использует функцию grep, которая способна различать нетекстовые файлы и передает имена текстовых файлов в git add.

Однако каждый текстовый файл создает команду git add, и для многих файлов она выполняется очень медленно.

Я искал способ передать git add список файлов для добавления, но не смог найти ни одного.

Есть ли способ заставить git add получать файлы для добавления в качестве аргументов? Имеет ли это смысл?

Есть ли лучшее решение моей проблемы?

1 Ответ

0 голосов
/ 21 апреля 2019

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

Например,, если вы пытаетесь игнорировать двоичные изображения, вы можете поставить *.jpg, *.png и *.gif (или любой другой формат).Вы также можете использовать отрицательные шаблоны, если вы хотите исключить отсутствие расширений, например типичные двоичные имена Unix, хотя вам проще записать все эти двоичные файлы в один каталог build, который затем игнорируется.

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

find . -type f -print0 | xargs -0 grep -IlZ . | xargs -0 git add

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

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