tipos tag sirve remove qué practices para nos existen etiquetas cuando crear creamos commits best git git-config

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 .



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