Подтвердить что ты не робот

Что такое git hawser?

Недавно я обнаружил, что мой .gitconfig был добавлен в эти несколько дополнительных строк:

[filter "hawser"]
    clean = git hawser clean %f
    smudge = git hawser smudge %f
    required = true

Поскольку он контролируется версиями, я уверен, что не добавил их. Кажется, я не только, чтобы иметь эти строки.

Однако: git: 'hawser' is not a git command. git help не дает дополнительной информации.

Итак, что это за фильтр "hawser"?

4b9b3361

Ответ 1

Я обнаружил, что изменение в моем .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.app вызывает строку git -media | hawser, которая в дополнение к сообщению об использовании твердо указывает, что git -hawser является вилкой или повторной реализацией git -media, используемый для хранения больших файлов вне репозитория git, поскольку github имеет жесткий размер файла размером 100 МБ. Я тестирую сейчас, чтобы узнать, что произойдет, если вы попытаетесь загрузить огромный файл через GitHub.app.

Оказывается, что GitHub.app не использует 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

Ответ 2

hawser - это старое имя для Git LFS (и git -media - еще более старое имя), поэтому я считаю, что это можно отбросить.

Googling это действительно сложно, но я, наконец, нашел, что команда переименовывает проект из 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

Ответ 4

Недавно я столкнулся с той же проблемой, и я просматриваю сайт https://git-lfs.github.com/?utm_source=github_site&utm_medium=blog&utm_campaign=gitlfs

Следующие шаги могут решить вашу проблему, если вы пользователь Windows.

  • Вниз загрузить exe для windows
  • Установите его
  • 'git lfs install' запустите этот код в команде git.

Теперь попробуйте нажать на изменения.