Ответ 1
Это будет означать git игнорировать разрешения:
git config core.filemode false
Я безостановочно изменяю разрешения всего моего дерева и фиксирую это изменение только с другими изменениями содержимого.
Я использую что-то вроде:
tar -czf deploy.tar git diff --name-only v1 v2
для создания tar с измененными файлами между двумя тегами, проблема в том, что теперь из-за изменений разрешений почти все мое дерево указано как измененное.
Есть ли способ, которым я мог бы сказать git diff
игнорировать те файлы, у которых только разрешены изменения?
Это будет означать git игнорировать разрешения:
git config core.filemode false
У меня была эта проблема после преднамеренного удаления разрешения на выполнение из файлов исходного кода (файлы ~ 26K). Затем git diff говорит, что все файлы были изменены! Ответ с core.filemode не помогает мне, так как это влияет только на отличие от вашего рабочего каталога, а не отличается от 2 коммитов в репо.
Ответ заключался в использовании команды (большой страх) фильтрации-ветки. В частности, все, что вам нужно ввести:
git filter-branch -f --tree-filter 'find * -type f | xargs chmod 644 ' -- --all
из корня вашей рабочей директории. Конечно, обязательно сделайте копию своего репо (cp -pr ~/repo.git ~/repo-orig.git или аналогичный), если вам нужно повторить попытку.
Наслаждайтесь!
Это старый вопрос, и ответ уже есть в комментариях, но:
Используйте -G<regex>
опции ( "Обратите внимание на различия, чей патч текст содержит добавленные/удалённые строки, которые соответствуют <regex>
.") В поисках каких - либо изменений на всех - то есть .
, Изменения только для прав доступа не соответствуют этому, поэтому они игнорируются.
Итак: git diff -G.