Что такое ГИТ хавсер?
Недавно я обнаружил, что мои .gitconfig
были добавлены эти несколько дополнительных строк:
[filter "hawser"]
clean = git hawser clean %f
smudge = git hawser smudge %f
required = true
Поскольку он управляется версиями, я уверен, что не добавлял их. Кажется, я не тот самый только один, чтобы иметь эти строки.
Однако: git: 'hawser' is not a git command
. git help
не дает никакой дополнительной информации.
Итак, что же это за фильтр "хавсер"?
4 ответа:
Я обнаружил, что изменение в моем
.gitconfig
точно совпало с обновлением github для mac, поэтому я назвал его таковым в своем РЕПО.Что касается того, что такое Hawser на самом деле, Github для mac имеет его в комплекте по пути
/Applications/GitHub.app/Contents/Resources/hawser/bin/git-hawser
.Запуск исполняемого файла с
--help=false
дает:git-hawser/0.4.0 (GitHub; darwin amd64; git 2.3.0; go 1.3) Usage: git-hawser [flags] git-hawser [command] Available Commands: add Add an entry to .gitattributes clean Implements the Git clean filter env Show the current environment init Initialize the default Git Media configuration logs View error logs ls-files Show information about hawser files path Manipulate .gitattributes push Push files to the hawser endpoint rm Remove an entry from .gitattributes remove Remove an entry from .gitattributes smudge Implements the Git smudge filter status Show information about hawser files that would be pushed update Update local hawser configuration version Show the version number help [command] Help about any command Available Flags: --help=false: help for git-hawser Use "git-hawser help [command]" for more information about that command.
Запуск
strings
на нескольких исполняемых файлах в GitHub.приложение включает строку git-media|hawser, которая в дополнение к сообщению об использовании твердо указывает, что git-hawser является форком или повторным воплощением git-media используется для хранения больших файлов за пределами репозитория git, так как github имеет жесткий лимит размера файла 100 МБ . Я сейчас тестирую, чтобы увидеть, что произойдет, если вы попытаетесь загрузить огромный файл через GitHub.апп.Оказывается, что GitHub.приложение не использует git-hawser автоматически при работе с большими файлами, но
strings
показывает, что у него есть возможность взаимодействовать с процессом git-hawser.Установка инструментов командной строки устанавливает инструмент
github
иgit-hawser
в/usr/local/bin
. Бегgit-hawser version -c
дает:git-hawser/0.4.0 (GitHub; darwin amd64; git 2.3.3; go 1.3) Nothing may see Gah Lak Tus and survive!
Это, кажется, связано: https://github.com/blog/1986-announcing-git-large-file-storage-lfs
И lo, фильтры hawser были продублированы как lfs (поддержка больших файлов):
[filter "lfs"] clean = git lfs clean %f smudge = git lfs smudge %f required = true
[3]}Hawser-это старое название Git LFS (а git-media-еще более старое название), поэтому я считаю, что это можно отбросить.
Гуглить это действительно трудно, но я наконец нашел фиксацию переименования проекта из hawser в lfs (https://github.com/github/git-lfs/commit/e37b69547710e2a341bc7904d291029ac594b3be ), и еще одно упоминание старого
git-media
имени (https://github.com/github/git-lfs/commit/eac36d7f04074882a7e3c9ad2cfc1d4f4a7b08fd).Итак, из этих блоков в ~/.gitconfig, удаление блоков" media "и" hawser " должно быть безопасным, особенно после установки git-lfs. Другими словами, из этого конфигурационного блока:
[filter "media"] required = true clean = git media clean %f smudge = git media smudge %f [filter "hawser"] clean = git hawser clean %f smudge = git hawser smudge %f required = true [filter "lfs"] clean = git-lfs clean -- %f smudge = git-lfs smudge -- %f required = true
Вы можете перейти к
[filter "lfs"] clean = git-lfs clean -- %f smudge = git-lfs smudge -- %f required = true
Это, по-видимому, следствие установки GitHub для Mac. По крайней мере, это информация, которую я получил от чтения этого сообщения фиксации.
Недавно я столкнулся с такой же проблемой и прохожу через сайт https://git-lfs.github.com/?utm_source=github_site&utm_medium=blog&utm_campaign=gitlfs
Следующие шаги могут решить вашу проблему, если вы являетесь пользователем windows.
- вниз загрузить exe для windows
- установить
- 'Git lfs install' запустите этот код в команде git.
Теперь попробуйте подтолкнуть изменения.