Ответ 1
Из видимой информации я могу только предположить, что проблема заключается в попытке настроить фильтры очистки и смазывания в неправильном месте.
Я вижу строки в файле .gitconfig
, но если он также не является домашним каталогом, это не то же самое, что .git/config
, где Git ищет их.
Попробуйте выполнить эту команду, чтобы увидеть, видит ли Git фильтр:
$ git config filter.zshrc.clean
zsh zshrc-clean.zsh
Если вы ничего не видите, фильтр на самом деле не настроен. Вы можете использовать git config filter.zshrc.clean "zsh zshrc-clean.zsh"
вместо редактирования файла конфигурации вручную.
К сожалению, если в фактической конфигурации Git отсутствует фильтр, упомянутый в .gitattributes
, он молча игнорируется.
Вот прямой способ проверить, вызывается ли фильтр при добавлении нового или измененного файла (удалить и повторно добавить, если он уже находится в индексе); Linux-только:
$ strace -qqqqqqq -fe execve -e signal=none git add zsh/zshrc
execve("/home/vi/bin/git", ["git", "add", "zsh/zshrc"], [/* 29 vars */]) = 0
[pid 7061] execve("/bin/sh", ["/bin/sh", "-c", "zsh zshrc-clean.zsh", "zsh zshrc-clean.zsh"], [/* 31 vars */]) = 0
[pid 7062] execve("/usr/bin/zsh", ["zsh", "zshrc-clean.zsh"], [/* 31 vars */]) = 0
[pid 7063] execve("/bin/sed", ["sed", "/export HOMEBREW_GITHUB_API_TOKE"..., "/dev/stdin"], [/* 31 vars */]) = 0
Можно проверить полученный blob после добавления:
$ git ls-files -s
100644 4138315597d69f0da1deae1b6eff0c30dc447e9c 0 zsh/zshrc
$ git cat-file blob 4138315597d69f0da1deae1b6eff0c30dc447e9c
export HOMEBREW_GITHUB_API_TOKEN =REPLACEME:zsh:HOMEBREW_GITHUB_API_TOKEN
Если подозрительная проблема на самом деле находится в .gitattributes
, вы можете проверить, действительно ли атрибут применяется к файлу:
$ git check-attr -a zsh/zshrc
zsh/zshrc: filter: zshrc
Чтобы получить дополнительную помощь, вы можете:
- Укажите
git --version
и операционную систему; - Если возможно, опубликуйте и соедините весь или частично каталог проекта (включая
.git
) или попробуйте воспроизвести сбой с фильтром в каком-то простом тестовом репозитории (который может быть опубликован). - Попробуйте настроить (или проверить настройку) и полностью использовать фильтры с консоли и включить весь вывод в вопрос.
После того, как чистый фильтр работает для одного файла, вы можете продолжить работу с другими файлами и фильтрами смазывания.