tag - ¿Qué es git hawser?
qué tipos de etiquetas existen en git (4)
Recientemente descubrí que mi .gitconfig
había sido añadido estas pocas líneas adicionales:
[filter "hawser"]
clean = git hawser clean %f
smudge = git hawser smudge %f
required = true
Ya que es una versión controlada, estoy seguro de que no los agregué. Parece que not soy the only que tiene estas líneas.
Sin embargo: git: ''hawser'' is not a git command
. git help
no da ninguna información adicional.
Entonces, ¿qué es este filtro "hawser"?
Encontré que el cambio en mi .gitconfig
coincidió con una actualización de github para mac exactamente, por lo que lo etiqueté como tal en mi repositorio.
En cuanto a lo que realmente es Hawser, Github para mac lo ha incluido en la ruta /Applications/GitHub.app/Contents/Resources/hawser/bin/git-hawser
.
ejecutando el ejecutable con --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.
Ejecutar strings
en unos pocos ejecutables en GitHub.app enciende la cadena git-media | hawser que además del mensaje de uso indica firmemente que git-hawser es una bifurcación o reimplementación de git-media utilizada para almacenar archivos grandes fuera de git repo, ya que github tiene un límite de tamaño de archivo de 100 MB . Estoy probando ahora para ver qué pasa si intentas subir un archivo enorme a través de GitHub.app.
Resulta que GitHub.app no usa git-hawser automáticamente cuando se trata de archivos grandes, pero las strings
revelan que sí tiene la capacidad de interactuar con un proceso de git-hawser.
Instalar las herramientas de la línea de comandos instala la herramienta github
y git-hawser
en /usr/local/bin
. Ejecutando la git-hawser version -c
da:
git-hawser/0.4.0 (GitHub; darwin amd64; git 2.3.3; go 1.3)
Nothing may see Gah Lak Tus and survive!
Esto parece relacionado: https://github.com/blog/1986-announcing-git-large-file-storage-lfs
Y he aquí, los filtros hawser se duplicaron como lfs (soporte de archivos grandes):
[filter "lfs"]
clean = git lfs clean %f
smudge = git lfs smudge %f
required = true
Esto parece ser una consecuencia de la instalación de GitHub para Mac. Al menos, esa es la información que obtuve al leer este mensaje de confirmación .
Recientemente he enfrentado el mismo problema y voy a través del sitio https://git-lfs.github.com/?utm_source=github_site&utm_medium=blog&utm_campaign=gitlfs
Los siguientes pasos pueden resolver su problema si usted es un usuario de Windows.
- Abajo cargar el exe para windows
- Instalarlo
- ''git lfs install'' ejecuta este código en el comando git.
Ahora intenta empujar los cambios.
hawser es un nombre antiguo para Git LFS (y git-media es el nombre aún más antiguo), por lo que creo que se puede eliminar.
Buscar en Google es realmente difícil, pero finalmente encontré el cambio de nombre del proyecto de hawser a lfs ( https://github.com/github/git-lfs/commit/e37b69547710e2a341bc7904d291029ac594b3be ), y otro que menciona el antiguo nombre git-media
( https://github.com/github/git-lfs/commit/eac36d7f04074882a7e3c9ad2cfc1d4f4a7b08fd ).
Por lo tanto, de estos bloques en ~ / .gitconfig, eliminar los bloques "media" y "hawser" debería ser seguro, especialmente una vez que instales git-lfs. En otras palabras, a partir de estos bloques de configuración:
[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
puedes ir a
[filter "lfs"]
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
required = true