¿Cómo puedo tener alguna información de depuración con respecto a git / git-shell?
Tuve un problema, que user1
podía clonar un repositorio sin problemas, mientras que user2
podía clonar solo uno vacío. Me había puesto GIT_TRACE=1
, pero no me dijeron nada útil.
Finalmente, después de una larga prueba y error, resultó que era un problema de permiso en un archivo. Un mensaje de error apropiado podría provocar un cortocircuito en este problema.
GIT_CURL_VERBOSE
, tendrás con Git 2.9.x / 2.10GIT_TRACE_CURL
. Vea mi respuesta a continuación .GIT_TRACE_CURL
), ahora tienetrace2
. Ejemplo:git config --global trace2.normalTarget ~/log.normal
. Vea mi (nueva) respuesta a continuación .Respuestas:
Para obtener resultados aún más detallados, utilice lo siguiente:
GIT_CURL_VERBOSE=1 GIT_TRACE=1 git pull origin master
fuente
set -x; GIT_TRACE=2 GIT_CURL_VERBOSE=2 GIT_TRACE_PERFORMANCE=2 GIT_TRACE_PACK_ACCESS=2 GIT_TRACE_PACKET=2 GIT_TRACE_PACKFILE=2 GIT_TRACE_SETUP=2 GIT_TRACE_SHALLOW=2 git pull origin master -v -v; set +x
git pull origin master
parte con el comando que desea ejecutar.set GIT_CURL_VERBOSE=1
set GIT_TRACE=1
git pull origin master
Depuración
Git tiene un conjunto bastante completo de trazas incrustadas que puede usar para depurar sus problemas de git.
Para activarlos, puede definir las siguientes variables:
GIT_TRACE
para rastros generales,GIT_TRACE_PACK_ACCESS
para rastrear el acceso a los archivos de paquete,GIT_TRACE_PACKET
para el rastreo a nivel de paquete para operaciones de red,GIT_TRACE_PERFORMANCE
para registrar los datos de rendimiento,GIT_TRACE_SETUP
para obtener información sobre cómo descubrir el repositorio y el entorno con el que está interactuando,GIT_MERGE_VERBOSITY
para depurar la estrategia de fusión recursiva (valores: 0-5),GIT_CURL_VERBOSE
para registrar todos los mensajes curl (equivalente acurl -v
),GIT_TRACE_SHALLOW
para depurar la recuperación / clonación de repositorios poco profundos.Los valores posibles pueden incluir:
true
,1
O2
escribir en stderr,/
por rastrear la salida hasta el archivo especificado.Para más detalles, ver: Git Internals - Variables de entorno
SSH
Para problemas de SSH, pruebe los siguientes comandos:
o use
ssh
para validar sus credenciales, por ejemploo sobre el puerto HTTPS:
Nota: Reduzca el número de
-v
para reducir el nivel de verbosidad.Ejemplos
fuente
echo 'ssh -vvv $*' > ssh && chmod +x ssh
aecho 'ssh -vvv "$@"' > ssh && chmod +x ssh
debería ser más seguro en el caso de borde donde un solo parámetro tiene un espacio en él.prueba este:
fuente
Si está sobre SSH, puede usar lo siguiente:
Para un nivel de depuración más alto para el tipo -vv o -vvv para el nivel de depuración 2 y 3 respectivamente:
Esto es principalmente útil para manejar problemas de clave pública y privada con el servidor. Puede usar este comando para cualquier comando git, no solo 'git clone'.
fuente
set GIT_SSH_COMMAND=ssh -v
(sin comillas).Git 2.9.x / 2,10 (Q3 2016) añade otra opción de depuración:
GIT_TRACE_CURL
.Ver commit 73e57aa , commit 74c682d (23 de mayo de 2016) por Elia Pinto (
devzero2000
) .Ayudado por: Torsten Bögershausen (
tboegi
) , Ramsay Jones, Junio C Hamano (gitster
) , Eric Sunshine (sunshineco
) y Jeff King (peff
) .(Fusionada por Junio C Hamano -
gitster
- en commit 2f84df2 , 06 jul 2016)La documentación indicará:
Puede ver esa nueva opción utilizada en esta respuesta , pero también en las pruebas Git 2.11 (Q4 2016):
Ver commit 14e2411 , commit 81590bf , commit 4527aa1 , commit 4eee6c6 (07 de septiembre de 2016) por Elia Pinto (
devzero2000
) .(Fusionada por Junio C Hamano -
gitster
- en commit 930b67e , 12 sep 2016)fuente
(ch >= 0x20) && (ch < 0x80)
como punto.
) y no hay forma de salida hexadecimal para datos http.Git 2.22 (Q2 2019) presenta
trace2
con commit ee4512e de Jeff Hostetler :Nota: con respecto al nombre de la variable de entorno, use siempre
GIT_TRACExxx
, noGIT_TRxxx
.Entonces
GIT_TRACE2
, en realidad ,GIT_TRACE2_PERF
oGIT_TRACE2_EVENT
.Vea el cambio de nombre de Git 2.22 mencionado más adelante.
Lo que sigue es el trabajo inicial en esta nueva característica de rastreo, con los antiguos nombres de variables de entorno:
Ver commit a4d3a28 (21 mar 2019) por Josh Steadmon (
steadmon
) .(Fusionada por Junio C Hamano -
gitster
- en commit 1b40314 , 08 de mayo de 2019)Ver también commit f672dee (29 abr 2019) y commit 81567ca , commit 08881b9 , commit bad229a , commit 26c6f25 , commit bce9db6 , commit 800a7f9 , commit a7bc01e , commit 39f4317 , commit a089724 , commit 1703751 (15 abr 2019) por Jeff Hostetler (
jeffhostetler
) .(Fusionada por Junio C Hamano -
gitster
- en commit 5b2d1c0 , 13 de mayo de 2019)La nueva documentación ahora incluye ajustes de configuración que solo se leen del sistema y archivos de configuración globales (lo que significa que
-c
no se respetan los archivos de configuración del repositorio local y worktree y los argumentos de la línea de comandos).Ejemplo :
rendimientos
Y para medir el rendimiento :
rendimientos
Como se documenta en Git 2.23 (Q3 2019), la variable de entorno a usar es
GIT_TRACE2
.Ver commit 6114a40 (26 de junio de 2019) por Carlo Marcelo Arenas Belón (
carenas
) .Ver commit 3efa1c6 (12 de junio de 2019) por Ævar Arnfjörð Bjarmason (
avar
) .(Fusionada por Junio C Hamano -
gitster
- en commit e9eaaa4 , 09 jul 2019)Eso sigue el trabajo realizado en Git 2.22: commit 4e0d3aa , commit e4b75d6 (19 de mayo de 2019) por SZEDER Gábor (
szeder
) .(Fusionada por Junio C Hamano -
gitster
- en commit 463dca6 , 30 de mayo de 2019)Git 2.24 (Q3 2019) mejora la inicialización del repositorio de Git.
Ver commit 22932d9 , commit 5732f2b , commit 58ebccb (06 de agosto de 2019) por Jeff King (
peff
) .(Fusionada por Junio C Hamano -
gitster
- en commit b4a1eec , 09 sep 2019)Git 2.24 (Q4 2019) también se asegura de que la salida del
trace2
subsistema esté formateada ahora con más precisión.Ver commit 742ed63 , commit e344305 , commit c2b890a (09 de agosto de 2019), commit ad43e37 , commit 04f10d3 , commit da4589c (08 de agosto de 2019) y commit 371df1b (31 de julio de 2019) por Jeff Hostetler (
jeffhostetler
) .(Fusionada por Junio C Hamano -
gitster
- en commit 93fc876 , 30 sep 2019)Y, todavía Git 2.24
Ver commit 87db61a , commit 83e57b0 (04 Oct 2019), y commit 2254101 , commit 3d4548e (03 Oct 2019) por Josh Steadmon (
steadmon
) .(Fusionada por Junio C Hamano -
gitster
- en commit d0ce4d9 , 15 oct 2019)Y Git 2.24 (Q4 2019) enseña trace2 sobre
git push
etapas.Ver commit 25e4b80 , commit 5fc3118 (02 oct 2019) por Josh Steadmon (
steadmon
) .(Fusionada por Junio C Hamano -
gitster
- en commit 3b9ec27 , 15 oct 2019)Con Git 2.25 (Q1 2020), parte del
Documentation/technical
se mueve a los*.h
archivos de encabezado .Ver cometer 6c51cb5 , cometen d95a77d , comprometerse bbcfa30 , comprometerse f1ecbe0 , comprometerse 4c4066d , comprometerse 7db0305 , comprometerse f3b9055 , comprometerse 971b1f2 , comprometerse 13aa9c8 , comprometerse c0be43f , comprometerse 19ef3dd , comprometerse 301d595 , comprometerse 3a1b341 , comprometerse 126c1cc , comprometerse d27eb35 , comprometerse 405c6b1 , cometen d3d7172 , commit 3f1480b , commit 266f03e , commit 13c4d7e(17 nov 2019) por Heba Waly (
HebaWaly
) .(Fusionada por Junio C Hamano -
gitster
- en commit 26c816a , 16 dic 2019)(aunque esa reorganización tuvo un efecto secundario en otro comando, explicado y corregido con Git 2.25.2 (marzo de 2020) en commit cc4f2eb (14 de febrero de 2020) por Jeff King (
peff
) .(Fusionada por Junio C Hamano -
gitster
- en commit 1235384 , 17 de febrero de 2020) )Con Git 2.27 (Q2 2020): Mejora de Trace2 para permitir el registro de las variables de entorno .
Ver commit 3d3adaa (20 de marzo de 2020) por Josh Steadmon (
steadmon
) .(Fusionada por Junio C Hamano -
gitster
- en commit 810dc64 , 22 de abril de 2020)Con Git 2.27 (Q2 2020), enseñe las rutas de código que muestran el medidor de progreso para usar también
start_progress()
lasstop_progress()
llamadas y como un "region
" para rastrear.Ver commit 98a1364 (12 de mayo de 2020) por Emily Shaffer (
nasamuffin
) .(Fusionada por Junio C Hamano -
gitster
- en commit d98abce , 14 de mayo de 2020)Y:
Con Git 2.27 (Q2 2020), corrección de último minuto para nuestro cambio reciente para permitir el uso de API de progreso como una región rastreable.
Ver commit 3af029c (15 de mayo de 2020) por Derrick Stolee (
derrickstolee
) .(Fusión por Junio C Hamano -
gitster
- en commit 85d6e28 , 20 de mayo de 2020)fuente
¿Has intentado agregar el
-v
operador verbose ( ) cuando clonas?git clone -v git://git.kernel.org/pub/scm/.../linux-2.6 my2.6
fuente
Para versiones anteriores de git (1.8 y anteriores)
No pude encontrar una manera adecuada de habilitar la depuración SSH en versiones anteriores de git y ssh. Busqué variables de entorno usando
ltrace -e getenv ...
y no pude encontrar ninguna combinación de variables GIT_TRACE o SSH_DEBUG que funcionara.En cambio, aquí hay una receta para inyectar temporalmente 'ssh -v' en la secuencia git-> ssh:
Aquí está la salida de git versión 1.8.3 con la versión ssh OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 de febrero de 2013 clonando un repositorio de github:
fuente