Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

215
Vistas
Obtenga el tamaño de archivo de una confirmación de git sin un archivo tmp

He respondido a esta pregunta , sugiriendo usar git hooks, pero, francamente, no estoy completamente satisfecho con la segunda parte, ya que crear un archivo temporal solo para obtener el tamaño de la confirmación parece redundante y feo. ¿Hay alguna manera de obtener el tamaño directamente? Suponga la implementación estándar de git.

Según lo sugerido por @Cyrus, git diff --cached | wc -c es una buena aproximación, pero depende de la codificación.

También probé la sustitución de procesos ls -l <(git diff --cached) | awk '{print $5}' pero eso devuelve 0.

Editar: según la respuesta de @torek, se me ocurrieron estas dos soluciones:

git ls-files --stage | cut -d' ' -f2 | xargs -L 1 git cat-file -s | awk '{s+=$1} END {print s}'

git diff --cached | awk -F. '/index/ {print $3}' | xargs -L 1 git cat-file -s | awk '{s+=$1} END {print s}'

Este último también maneja nuevos archivos.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Para obtener el tamaño (en bytes) de un objeto git, use git cat-file -s revspec . Por ejemplo:

 $ git cat-file -s HEAD:Makefile 950

Tenga en cuenta que esto le mostrará el tamaño del objeto de un árbol:

 $ git cat-file -t HEAD: tree $ git cat-file -s HEAD: 546

Para una gran colección de ID, es posible que desee utilizar git cat-file --batch-check (que, desde git 1.8.4, ahora toma un argumento de formato para seleccionar qué información imprimir; consulte la documentación ).

over 4 years ago · Santiago Trujillo Denunciar

0

Creo que git diff --cached --numstat es básicamente la principal fuente de información. Para mí, no está completamente claro qué restricciones le gustaría poner en una confirmación, pero para resumir la cantidad de inserciones y eliminaciones, podría usar algo como esto:

 git diff --numstat --cached | awk ' BEGIN { insertions=0; deletions=0; } { insertions+=$1; deletions+=$2; } END { printf("inserttions=%d, deletions=%d\n", insertions, deletions); }'
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda