Comment puis-je avoir des informations de débogage concernant git / git-shell?
J'ai eu un problème, qui user1
pouvait cloner un référentiel sans problème, alors que user2
je ne pouvais en cloner qu'un vide. J'avais mis GIT_TRACE=1
, mais rien d'utile n'a été dit.
Enfin, après de longs essais et erreurs, il s'est avéré qu'il s'agissait d'un problème d'autorisation sur un fichier. Un message d'erreur approprié pourrait court-circuiter ce problème.
GIT_CURL_VERBOSE
, vous aurez avec Git 2.9.x / 2.10GIT_TRACE_CURL
. Voir ma réponse ci-dessous .GIT_TRACE_CURL
), vous l'avez maintenanttrace2
. Exemple:git config --global trace2.normalTarget ~/log.normal
. Voir ma (nouvelle) réponse ci-dessous .Réponses:
Pour une sortie encore plus détaillée, utilisez ce qui suit:
GIT_CURL_VERBOSE=1 GIT_TRACE=1 git pull origin master
la source
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
pièce par la commande que vous souhaitez exécuter.set GIT_CURL_VERBOSE=1
set GIT_TRACE=1
git pull origin master
Débogage
Git a un ensemble assez complet de traces intégrées que vous pouvez utiliser pour déboguer vos problèmes git.
Pour les activer, vous pouvez définir les variables suivantes:
GIT_TRACE
pour les traces générales,GIT_TRACE_PACK_ACCESS
pour le traçage de l'accès au packfile,GIT_TRACE_PACKET
pour le traçage au niveau des paquets pour les opérations réseau,GIT_TRACE_PERFORMANCE
pour la journalisation des données de performance,GIT_TRACE_SETUP
pour obtenir des informations sur la découverte du référentiel et de l'environnement avec lequel il interagit,GIT_MERGE_VERBOSITY
pour le débogage de la stratégie de fusion récursive (valeurs: 0-5),GIT_CURL_VERBOSE
pour la journalisation de tous les messages curl (équivalent àcurl -v
),GIT_TRACE_SHALLOW
pour le débogage, la récupération / le clonage de référentiels peu profonds.Les valeurs possibles peuvent inclure:
true
,1
ou2
pour écrire à stderr,/
pour tracer la sortie vers le fichier spécifié.Pour plus de détails, voir: Git Internals - Environment Variables
SSH
Pour les problèmes SSH, essayez les commandes suivantes:
ou utilisez
ssh
pour valider vos informations d'identification, par exempleou via le port HTTPS:
Remarque: réduisez le nombre de
-v
pour réduire le niveau de verbosité.Exemples
la source
echo 'ssh -vvv $*' > ssh && chmod +x ssh
enecho 'ssh -vvv "$@"' > ssh && chmod +x ssh
devrait être plus sûr dans le cas du bord où un seul paramètre contient un espace.essaye celui-là:
la source
Si c'est via SSH, vous pouvez utiliser ce qui suit:
Pour un niveau de débogage plus élevé pour le type -vv ou -vvv pour les niveaux de débogage 2 et 3 respectivement:
Ceci est principalement utile pour gérer les problèmes de clé publique et privée avec le serveur. Vous pouvez utiliser cette commande pour n'importe quelle commande git, pas seulement «git clone».
la source
set GIT_SSH_COMMAND=ssh -v
(sans guillemets).Git 2.9.x / 2.10 (Q3 2016) ajoute une autre option de débogage:
GIT_TRACE_CURL
.Voir commit 73e57aa , commit 74c682d (23 mai 2016) par Elia Pinto (
devzero2000
) .Aidé par: Torsten Bögershausen (
tboegi
) , Ramsay Jones, Junio C Hamano (gitster
) , Eric Sunshine (sunshineco
) et Jeff King (peff
) .(Fusionné par Junio C Hamano -
gitster
- in commit 2f84df2 , 06 juil 2016)La documentation indiquera:
Vous pouvez voir cette nouvelle option utilisée dans cette réponse , mais aussi dans les tests Git 2.11 (T4 2016):
Voir commit 14e2411 , commit 81590bf , commit 4527aa1 , commit 4eee6c6 (07 septembre 2016) par Elia Pinto (
devzero2000
) .(Fusionné par Junio C Hamano -
gitster
- in commit 930b67e , 12 sept 2016)la source
(ch >= 0x20) && (ch < 0x80)
sous forme de point.
) et aucun moyen de sortie hexadécimale pour les données http.Git 2.22 (Q2 2019) introduit
trace2
avec commit ee4512e par Jeff Hostetler :Remarque: concernant le nom de la variable d'environnement, utilisez toujours
GIT_TRACExxx
, nonGIT_TRxxx
.Donc en fait
GIT_TRACE2
,GIT_TRACE2_PERF
ouGIT_TRACE2_EVENT
.Voir le changement de nom Git 2.22 mentionné plus loin ci-dessous.
Ce qui suit est le travail initial sur cette nouvelle fonctionnalité de traçage, avec les anciens noms de variables d'environnement:
Voir commit a4d3a28 (21 mars 2019) par Josh Steadmon (
steadmon
) .(Fusionné par Junio C Hamano -
gitster
- dans commit 1b40314 , 08 mai 2019)Voir aussi commit f672dee (29 avril 2019) et commit 81567ca , commit 08881b9 , commit bad229a , commit 26c6f25 , commit bce9db6 , commit 800a7f9 , commit a7bc01e , commit 39f4317 , commit a089724 , commit 1703751 (15 avril 2019) par Jeff Hostetler (
jeffhostetler
) .(Fusionné par Junio C Hamano -
gitster
- dans commit 5b2d1c0 , 13 mai 2019)La nouvelle documentation comprend désormais des paramètres de configuration qui ne sont lus qu'à partir du système et des fichiers de configuration globaux (ce qui signifie que les fichiers de configuration locaux et d'arbre de travail du référentiel et les
-c
arguments de ligne de commande ne sont pas respectés.)Exemple :
rendements
Et pour la mesure de la performance :
rendements
Comme documenté dans Git 2.23 (Q3 2019), la variable d'environnement à utiliser est
GIT_TRACE2
.Voir commit 6114a40 (26 juin 2019) par Carlo Marcelo Arenas Belón (
carenas
) .Voir commit 3efa1c6 (12 juin 2019) par Ævar Arnfjörð Bjarmason (
avar
) .(Fusionné par Junio C Hamano -
gitster
- in commit e9eaaa4 , 09 juil.2019 )Cela fait suite au travail effectué dans Git 2.22: commit 4e0d3aa , commit e4b75d6 (19 mai 2019) par SZEDER Gábor (
szeder
) .(Fusionné par Junio C Hamano -
gitster
- dans commit 463dca6 , 30 mai 2019)Git 2.24 (Q3 2019) améliore l'initialisation du référentiel Git.
Voir commit 22932d9 , commit 5732f2b , commit 58ebccb (06 août 2019) par Jeff King (
peff
) .(Fusionné par Junio C Hamano -
gitster
- dans commit b4a1eec , 09 sept. 2019)Git 2.24 (Q4 2019) garantit également que la sortie du
trace2
sous-système est formatée plus joliment maintenant.Voir commit 742ed63 , commit e344305 , commit c2b890a (09 août 2019), commit ad43e37 , commit 04f10d3 , commit da4589c (08 août 2019) et commit 371df1b (31 juillet 2019) par Jeff Hostetler (
jeffhostetler
) .(Fusionné par Junio C Hamano -
gitster
- dans commit 93fc876 , 30 sept. 2019)Et, toujours Git 2.24
Voir commit 87db61a , commit 83e57b0 (4 octobre 2019) et commit 2254101 , commit 3d4548e (3 octobre 2019) par Josh Steadmon (
steadmon
) .(Fusionné par Junio C Hamano -
gitster
- dans commit d0ce4d9 , 15 octobre 2019)Et Git 2.24 (Q4 2019) enseigne à trace2 les
git push
étapes.Voir commit 25e4b80 , commit 5fc3118 (02 octobre 2019) par Josh Steadmon (
steadmon
) .(Fusionné par Junio C Hamano -
gitster
- dans commit 3b9ec27 , 15 octobre 2019)Avec Git 2.25 (Q1 2020), une partie des fichiers
Documentation/technical
est déplacée vers les*.h
fichiers d'en- tête .Voir commit 6c51cb5 , commit d95a77d , commit bbcfa30 , commit f1ecbe0 , commit 4c4066d , commit 7db0305 , commit f3b9055 , commit 971b1f2 , engager 13aa9c8 , engager c0be43f , engager 19ef3dd , engager 301d595 , engager 3a1b341 , engager 126c1cc , engager d27eb35 , engager 405c6b1 , commit d3d7172 , validez 3f1480b , commit 266f03e , validation 13c4d7e(17 novembre 2019) parHeba Waly (
HebaWaly
) .(Fusionné par Junio C Hamano -
gitster
- in commit 26c816a , 16 déc 2019)(bien que cette réorganisation ait eu un effet secondaire sur une autre commande, expliqué et corrigé avec Git 2.25.2 (mars 2020) dans commit cc4f2eb (14 février 2020) par Jeff King (
peff
) .(fusionné par Junio C Hamano -
gitster
- dans commit 1235384 , 17 févr.2020 ) )Avec Git 2.27 (Q2 2020): amélioration de Trace2 pour permettre la journalisation des variables d'environnement .
Voir commit 3d3adaa (20 mars 2020) par Josh Steadmon (
steadmon
) .(Fusionné par Junio C Hamano -
gitster
- dans commit 810dc64 , 22 avril 2020)Avec Git 2.27 (T2 2020), apprenez aux codepaths qui affichent la barre de progression à utiliser également les
start_progress()
et lesstop_progress()
appels comme "region
" à tracer.Voir commit 98a1364 (12 mai 2020) par Emily Shaffer (
nasamuffin
) .(Fusionné par Junio C Hamano -
gitster
- dans commit d98abce , 14 mai 2020)Et:
Avec Git 2.27 (Q2 2020), correctif de dernière minute pour notre récent changement pour permettre l'utilisation de l'API progress comme une région traçable.
Voir commit 3af029c (15 mai 2020) par Derrick Stolee (
derrickstolee
) .(Fusionné par Junio C Hamano -
gitster
- dans commit 85d6e28 , 20 mai 2020)la source
Avez-vous essayé d'ajouter l'
-v
opérateur verbose ( ) lors du clonage?git clone -v git://git.kernel.org/pub/scm/.../linux-2.6 my2.6
la source
Pour les anciennes versions de git (1.8 et antérieures)
Je n'ai trouvé aucun moyen approprié d'activer le débogage SSH dans les anciennes versions de git et ssh. J'ai cherché des variables d'environnement en utilisant
ltrace -e getenv ...
et trouvé aucune combinaison de variables GIT_TRACE ou SSH_DEBUG qui fonctionnerait.Au lieu de cela, voici une recette pour injecter temporairement 'ssh -v' dans la séquence git-> ssh:
Voici le résultat de la version 1.8.3 de git avec la version ssh OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 février 2013 clonant un dépôt github:
la source