Git 🌙
Français ▾ Topics ▾ Latest version ▾ git last updated in 2.47.0

NOM

git - le traqueur de contenu stupide

SYNOPSIS

git [-v | --version] [-h | --help] [-C <chemin>] [-c <nom>=<valeur>]
    [--exec-path[=<chemin>]] [--html-path] [--man-path] [--info-path]
    [-p | --paginate | -P | --no-pager] [--no-replace-objects]  [--no-lazy-fetch]
    [--no-optional-locks] [--no-advice] [--bare]
    [--git-dir=<chemin>] [--work-tree=<chemin>] [--namespace=<nom>]
    [--config-env=<nom>=<var-env>] <commande> [<args>]

DESCRIPTION

Git est un système de gestion de révision rapide, extensible et distribué avec un ensemble de commandes inhabituellement riche qui fournit à la fois des opérations de haut niveau et un accès complet aux structures de bas niveau.

Voir gittutorial[7] pour démarrer, puis voir giteveryday[7] pour un ensemble minimal utile de commandes. Le manuel utilisateur de Git contient une introduction plus approfondie.

Aprs avoir maîtrisé les concepts de base, vous pouvez revenir à cette page pour apprendre les commandes que Git offre. Vous pouvez en apprendre plus sur chaque commande Git avec « git help command ». La page de manuel de gitcli[7] fournit un aperçu de la syntaxe de commande de la ligne de commande.

Une copie formatée et hyperliée de la dernière documentation de Git peut être visualisée à https://git.github.io/htmldocs/git.html ou à https://git-scm.com/docs.

OPTIONS

-v
--version

Afficher la version de la suite Git de laquelle le programme git provient.

Cette option est convertie en interne en git version... et accepte les mĂŞmes options que la commande git-version[1]. Si l’on --help est donnĂ©e aussi , elle a prĂ©sĂ©ance sur --version.

-h
--help

Afficher le synopsis et les liste des commandes les plus utilisĂ©es. Si l’option --all ou -a est fournie alors toutes les commandes disponibles sont affichĂ©es. si une commande Git est fournie, cette option affiche la page de manuel pour cette commande.

Les autres options sont disponibles pour contrĂ´ler comment la page de manuel est affichĂ©e. Voir git-help[1] pour plus d’information, parce que git --help ... est convertie en interne en git help ....

-C <chemin>

Démarrer comme si git était lancé depuis <chemin> au lieu du répertoire de travail actuel. Quand plusieurs options -C sont fournies, chaque -C <chemin> non-absolu supplémentaire est interprété relativement au -C <chemin> précédent. Si <chemin> est présent mais vide, c-à-d -C "", alors le répertoire de travail courant est laissé inchangé.

Cette option affecte les options qui attendent de chemins comme --git-dir et --work-tree en ce que leurs interprĂ©tations des noms de chemins seront relatives au rĂ©pertoire de travail dĂ©fini par l’option -C. Par exemple, les invocations suivantes sont Ă©quivalentes :

git --git-dir=a.git --work-tree=b -C c status
git --git-dir=c/a.git --work-tree=c/b status
-c <nom>=<valeur>

Passer un paramètre de configuration Ă  la commande. La valeur fournie surchargera la valeur des fichiers des configuration. Le <nom> a le mĂŞme format que listĂ© par ‘git config’ (sous-clĂ©s sĂ©parĂ©es par des points).

Notez qu’omettre le = dans git -c foo.bar ... est permis et positionne foo.bar Ă  la valeur boolĂ©enne true (de la mĂŞme manière que le ferait [foo]bar dans un fichier de configuration). Si le = est inclus mais avec une valeur vide (comme git -c foo.bar= ...), cela positionne foo.bar Ă  la chaĂ®ne vide que git config --type=bool convertira en false.

--config-env=<nom>=<var-env>

Ă€ l’instar de -c <nom>=<valeur>, donner une valeur Ă  la variable de configuration <nom>, oĂą <envvar> est le nom d’une variable d’environnement depuis laquelle rĂ©cupĂ©rer la valeur. Contrairement Ă  -c il n’y a pas de raccourci pour dĂ©finir directement la valeur Ă  une chaĂ®ne vide, la variable d’environnement elle-mĂŞme doit ĂŞtre dĂ©finie Ă  la chaĂ®ne vide. Il s’agit d’une erreur si le envvar n’existe pas dans l’environnement. <envvar> ne peut pas contenir un signe Ă©gal pour Ă©viter toute ambiguĂŻtĂ© avec <nom> en contenant un.

Ceci est utile pour les cas oĂą vous voulez passer des options de configuration transitoires Ă  git, mais le faire sur les systèmes d’exploitation oĂą d’autres processus pourraient ĂŞtre en mesure de lire votre ligne de commande (par exemple /proc/self/cmdline), mais pas votre environnement (par exemple /proc/self/environ). C’est le comportement par dĂ©faut sur Linux, mais peut ne pas l’ĂŞtre sur votre système.

Notez que cela pourrait ajouter de la sécurité pour des variables telles que http.extraHeader où les informations sensibles font partie de la valeur, mais pas par exemple url. <base>.insteadOf où les informations sensibles peuvent faire partie de la clé.

--exec-path[=<chemin>]

Chemin dans lequel les programmes de base de Git sont installĂ©s. Cela peut aussie ĂŞtre gĂ©rĂ© en positionnant la variable d’environnement GIT_EXEC_PATH. Si aucun chemin n’est spĂ©cifiĂ©, git affichera la valeur actuelle, puis sortira.

--html-path

Afficher le chemin, sans la barre finale, où la documentation HTML de Git est installé et sortir.

--man-path

Afficher le chemin manpath (voir man(1)) pour les pages de manuel de cette version de Git et sortir.

--info-path

Afficher le chemin où sont installés les fichiers Info documentant cette version de Git et sortir.

-p
--paginate

Redirige toutes les sorties dans less (ou $PAGER, si positionné) si la sortie standard est un terminal. Cela surcharge les options de configuration pager.<cmd> (voir la section « Mécanisme de configuration » ci-dessous).

-P
--no-pager

Ne pas rediriger la sortie de Git dans un pageur.

--git-dir=<chemin>

Règle le chemin vers le dĂ©pĂ´t (rĂ©pertoire ".git"). Ceci peut aussi ĂŞtre contrĂ´lĂ© en rĂ©glant la variable d’environnement GIT_DIR. Ce peut ĂŞtre un chemin absolu ou relatif au rĂ©pertoire de travail actuel.

SpĂ©cifier l’emplacement du rĂ©pertoire ".git" en utilisant cette option (ou la variable d’environnement GIT_DIR) dĂ©sactive la dĂ©couverte de dĂ©pĂ´t, qui tente de trouver un rĂ©pertoire avec un sous-rĂ©pertoire ".git" (ce qui est la façon dont le dĂ©pĂ´t et le niveau supĂ©rieur de l’arbre de travail sont dĂ©couverts), et indique Ă  Git que vous ĂŞtes au niveau supĂ©rieur de l’arbre de travail. Si vous n’ĂŞtes pas dans le rĂ©pertoire de niveau supĂ©rieur de l’arbre de travail, vous devez dire Ă  Git oĂą se trouve le niveau supĂ©rieur de l’arbre de travail, avec l’option --work-tree=<chemin> (ou la variable d'environnement`GIT_WORK_TREE)

Si vous voulez juste lancer git comme s’il Ă©tait dĂ©marrĂ© dans <chemin>, utilisez git -C <chemin>.

--work-tree=<chemin>

RĂ©gler le chemin du rĂ©pertoire de travail. Ce peut ĂŞtre un chemin absolu ou un chemin relatif au rĂ©pertoire de travail actuel. Ceci peut aussi ĂŞtre contrĂ´lĂ© en rĂ©glant la variable d’environnement GIT_WORK_TREE et la variable de configuration core.worktree (voir core.worktree dans git-config[1] pour une discussion plus dĂ©taillĂ©e).

--namespace=<chemin>

RĂ©gler l’espace de nommage Git. Voir gitnamespaces[7] pour plus de dĂ©tails. Équivalent Ă  rĂ©gler la variable d’environnement GIT_NAMESPACE.

--bare

Traiter le dĂ©pĂ´t comme un dĂ©pĂ´t nu. Si l’environnement GIT_DIR n’est pas dĂ©fini, alors il est dĂ©fini au rĂ©pertoire de travail actuel.

--no-replace-objects

Ne pas utiliser des refs de remplacement pour remplacer des objets Git. Voir git-replace[1] pour de plus amples informations. Ceci Ă©quivaut Ă  l’exportation de la variable d’environnement GIT_NO_REPLACE_OBJECTS avec n’importe quelle valeur. Voir git-replace[1] pour de plus amples d’informations.

--no-lazy-fetch

Do not fetch missing objects from the promisor remote on demand. Useful together with git cat-file -e <object> to see if the object is locally available. This is equivalent to setting the GIT_NO_LAZY_FETCH environment variable to 1.

--no-optional-locks

Ne pas effectuer des opérations optionnelles qui nécessitent des verrouillages. Ceci équivaut à mettre GIT_OPTIONAL_LOCKS à 0.

--no-advice

Disable all advice hints from being printed.

--literal-pathspecs

Traier les spĂ©cificateurs de chemins littĂ©ralement (c-Ă -d sans jokers ni magie de pathspec). Ceci est Ă©quivalent Ă  rĂ©gler la variable d’environnement GIT_LITERAL_PATHSPECS Ă  1.

--glob-pathspecs

Ajouter la magie « glob » Ă  tous les spĂ©cificateurs de chemin. C’est Ă©quivalent Ă  rĂ©gler la variable d’environnement GIT_GLOB_PATHSPECS Ă  1. La dĂ©sactivation du traitement glob sur des spĂ©cificateurs de chemin spĂ©cifiques peut ĂŞtre rĂ©alisĂ©e en utilisant le prĂ©fixe magique ":(litera)"

--noglob-pathspecs

Ajouter la magie « literal » Ă  tous les spĂ©cificateurs de chemin. C’est Ă©quivalent Ă  rĂ©gler la variable d’environnement GIT_NOGLOB_PATHSPECS Ă  1. L’activation du traitement glob sur des spĂ©cificateurs de chemin spĂ©cifiques peut ĂŞtre rĂ©alisĂ©e en utilisant le prĂ©fixe magique ":(glob)"

--icase-pathspecs

Ajouter la magie « icase » Ă  tous les spĂ©cificateurs de chemin. C’est Ă©quivalent Ă  rĂ©gler la variable d’environnement GIT_ICASE_PATHSPECS Ă  1.

--list-cmds=<groupe>[,<groupe>…​]

Liste les commandes par groupe. Il s’agit d’une option interne/expĂ©rimentale et peut changer ou ĂŞtre retirĂ©e Ă  l’avenir. Les groupes pris en charge sont les suivants : builtins, parseopt (commandes intĂ©grĂ©es qui utilisent parse-options), main (toutes commandes dans le rĂ©pertoire libexec), autres (toutes autres commandes dans $PATH qui ont un prĂ©fixe git), list-<catĂ©gorie> (voir les catĂ©gories dans command-list.txt), nohelpers (exclure les commandes assistantes), alias et config (rĂ©cupère la liste de commandes depuis la variable de configuration completion.commands)

--attr-source=<arbre-esque>

Lire les gitattributs depuis <arbre-esque> au lieu de l’arbre-de-travail. Voir gitattributes[5]. C’est Ă©quivalent Ă  rĂ©gler la variable d’environnement GIT_ATTR_SOURCE.

COMMANDES GIT

Nous divisons Git entre les commandes de haut niveau ("porcelaine") et de bas niveau ("plomberie").

Commandes de haut niveau (porcelaine)

Nous séparerons les commandes de porcelaine entre commandes principales et quelques utilitaires auxiliaires.

Commandes Porcelaine Principales

git-add[1]

Ajouter le contenu de fichiers Ă  l’index.

git-am[1]

Appliquer une série de rustines depuis des fichiers mailbox.

git-archive[1]

Créer une archive des fichiers depuis un arbre nommé.

git-bisect[1]

Trouver par recherche binaire la modification qui a introduit un bogue.

git-branch[1]

Lister, créer ou supprimer des branches.

git-bundle[1]

Déplacer les objets et références par archive.

git-checkout[1]

Basculer de branche ou restaurer les fichiers des arbres de travail.

git-cherry-pick[1]

Appliquer les modifications introduites par des commits existants.

git-citool[1]

Alternative graphique Ă  git-commit.

git-clean[1]

Supprimer des fichiers non-suivis depuis un arbre de travail.

git-clone[1]

Cloner un dépôt dans un nouveau répertoire.

git-commit[1]

Enregistrer les modifications dans le dépôt.

git-describe[1]

Baptiser un objet avec un nom lisible basé sur une référence disponible.

git-diff[1]

Afficher les modifications entre les validations, entre validation et copie de travail, etc.

git-fetch[1]

Télécharger les objets et références depuis un autre dépôt.

git-format-patch[1]

Préparer les rustines pour soumission par courriel.

git-gc[1]

Effacer les fichiers non-nécessaires et optimiser le dépôt local.

git-grep[1]

Afficher les lignes correspondant Ă  un motif.

git-gui[1]

Une interface graphique portable pour Git.

git-init[1]

Créer un dépôt Git vide ou réinitialise un dépôt existant.

git-log[1]

Afficher l’historique des validations.

git-maintenance[1]

Exécuter des tâches pour optimiser les données du dépôt Git.

git-merge[1]

Fusionner deux ou plusieurs historiques de développement ensemble.

git-mv[1]

Déplacer ou renommer un fichier, un répertoire, ou un lien symbolique.

git-notes[1]

Ajouter ou inspecter les notes d’un objet.

git-pull[1]

Rapatrier et intégrer un autre dépôt ou une branche locale.

git-push[1]

Mettre à jour les références distantes ainsi que les objets associés.

git-range-diff[1]

Comparer deux plages de commits (par exemple deux versions d’une branche).

git-rebase[1]

RĂ©appliquet des commits sur le sommet de l’autre base.

git-reset[1]

RĂ©initialiser la HEAD actuelle Ă  l’Ă©tat spĂ©cifiĂ©.

git-restore[1]

Corriger les fichiers de l’arbre de travail.

git-revert[1]

Inverser des commits existants.

git-rm[1]

Supprimer des fichiers d’un arbre de travail ou de l’index.

git-shortlog[1]

RĂ©sumer la sortie de git log.

git-show[1]

Afficher diffĂ©rents types d’objets.

git-sparse-checkout[1]

RĂ©duire votre arbre de travail Ă  un sous-ensemble de fichiers suivis.

git-stash[1]

Remiser les modifications d’un rĂ©pertoire de travail sale.

git-status[1]

Afficher l’Ă©tat de l’arbre de travail.

git-submodule[1]

Initialiser, mettre Ă  jour et inspecter les sous-modules.

git-switch[1]

Basculer de branche.

git-tag[1]

CrĂ©er, lister, supprimer ou vĂ©rifier un objet d’Ă©tiquette signĂ© avec GPG.

git-worktree[1]

GĂ©rer des arbres de travail multiples.

gitk[1]

Le navigateur de dépôt Git.

scalar[1]

Un outil pour gérer les grands dépôts Git.

Commandes auxiliaires

Manipulateurs :

git-config[1]

Voir et régler les options globales ou de dépôt.

git-fast-export[1]

Exporteur de données Git.

git-fast-import[1]

Moteur pour les importateurs rapides de données Git.

git-filter-branch[1]

RĂ©Ă©crire les branches.

git-mergetool[1]

Lancer les outils de résolution de conflit de fusion pour résoudre les conflits de fusion.

git-pack-refs[1]

Empaqueter les têtes et les étiquettes pour un accès efficace au dépôt.

git-prune[1]

Élaguer tous les objets non joignables de la base de donnĂ©es d’objets.

git-reflog[1]

GĂ©rer l’information de reflog.

git-refs[1]

Accès bas niveau aux refs.

git-remote[1]

Gerer un ensemble de dépôts suivis.

git-repack[1]

Empaqueter les objets non-empaquetés dans un dépôt.

git-replace[1]

Créer, lister, supprimer des référence pour remplacer des objets.

Interrogateurs :

git-annotate[1]

Annoter les lignes du fichier avec l’information de commit.

git-blame[1]

Montrer la rĂ©vision et l’auteur qui ont modifiĂ© en dernier chaque ligne d’un fichier.

git-bugreport[1]

Collecter des informations pour que l’utilisateur dépose un rapport de bogue.

git-count-objects[1]

Compter le nombre non-empaquetĂ© d’objets et leur consommation d’espace disque.

git-diagnose[1]

Générer une archive zip des informations de diagnostic.

git-difftool[1]

Afficher les modifications en utilisant les outils habituels de diff.

git-fsck[1]

Vérifie la connectivité et la validité des objets en base de données.

git-help[1]

Afficher l’information d’aide Ă  propos de Git.

git-instaweb[1]

Naviguer instantanément votre dépôt de travail dans gitweb.

git-merge-tree[1]

Effectuer la fusion sans toucher Ă  l’index ou Ă  l’arbre de travail.

git-rerere[1]

Réutiliser une résolution enregistrée de fusions conflictuelles.

git-show-branch[1]

Afficher les branches et leurs commits.

git-verify-commit[1]

VĂ©rifier la signature GPG de commits.

git-verify-tag[1]

VĂ©rifier la signature GPG d’Ă©tiquettes.

git-version[1]

Afficher l’information de version Ă  propos de Git.

git-whatchanged[1]

Afficher les journaux avec les différences que chaque commit introduit.

gitweb[1]

Interface web de Git (frontal web vers les dépôts Git).

Interaction avec d’autres dĂ©veloppeurs

Ces commandes permettent d’interagir avec autre SCM et avec d’autres personnes via rustines envoyĂ©es par courriel.

git-archimport[1]

Importer dans Git un dépôt GNU Arch.

git-cvsexportcommit[1]

Exporter un commit unique en extraction CVS.

git-cvsimport[1]

Sauver vos donnĂ©es depuis un autre SCM qu’on aime haĂŻr.

git-cvsserver[1]

Un Ă©mulateur de serveur CVS pour Git.

git-imap-send[1]

Envoyer un ensemble de patchs depuis stdin vers un répertoire IMAP.

git-p4[1]

Importer depuis et soumettre vers des dépôts Perforce.

git-quiltimport[1]

Appliquer un patchset quilt sur la branche courante.

git-request-pull[1]

Générer une résumé des modifications en attentes.

git-send-email[1]

Envoyer un ensemble de rustines comme courriels.

git-svn[1]

Opération Bidirectionnelle entre un dépôt Subversion et Git.

RĂ©initialiser, restaurer et revenir

Il y a trois commandes avec des noms similaires : git reset, git restore et git revert.

  • git-revert[1] sert Ă  faire un nouveau commit qui inverse les modifications apportĂ©es par d’autres commits.

  • git-restore[1] consiste Ă  restaurer des fichiers dans l’arbre de travail Ă  partir de l’index ou d’un autre commit. Cette commande ne met pas Ă  jour votre branche. La commande peut Ă©galement ĂŞtre utilisĂ©e pour restaurer des fichiers dans l’index depuis un autre commit.

  • git-reset[1] consiste Ă  mettre Ă  jour votre branche, en dĂ©plaçant le sommet afin d’ajouter ou de supprimer des commits de la branche. Cette opĂ©ration modifie l’historique des commits.

    git reset peut Ă©galement ĂŞtre utilisĂ© pour restaurer l’index, Ă  la manière de git restore.

Commandes de bas niveau (plomberie)

Bien que Git comprend sa propre couche de porcelaine, ses commandes de bas niveau sont suffisantes pour développer de porcelaines alternatives. Les développeurs de ces porcelaines devraient commencer par la lecture de git-update-index[1] et git-read-tree[1].

L’interface (entrĂ©e, sortie, ensemble d’options et sĂ©mantique) Ă  ces commandes de bas niveau est censĂ©e ĂŞtre beaucoup plus stable que les commandes de niveau Porcelaine, parce que ces commandes sont principalement destinĂ©es Ă  une utilisation scriptĂ©e. L’interface des commandes Porcelaine en revanche est sujette Ă  changement afin d’amĂ©liorer l’expĂ©rience de l’utilisateur final.

La description suivante divise les commandes de bas niveau en commandes qui manipulent les objets (dans le dĂ©pĂ´t, l’index et l’arbre de travail), celles qui interrogent et comparent les objets, et les commandes qui dĂ©placent les objets et les rĂ©fĂ©rences entre les dĂ©pĂ´ts.

Commandes de manipulation

git-apply[1]

Appliquer un correctif Ă  des fichiers et/ou Ă  l’index.

git-checkout-index[1]

Copier des fichiers depuis l’index dans l’arbre de travail.

git-commit-graph[1]

Écrire et vérifier les fichiers de graphe de commit Git.

git-commit-tree[1]

Créer un nouvel objet commit.

git-hash-object[1]

Calculer l’ID d’objet et crĂ©er optionnellement un objet depuis un fichier.

git-index-pack[1]

Construire un fichier d’index pack depuis une archive compactĂ©e existante.

git-merge-file[1]

Lancer une fusion Ă  3 points.

git-merge-index[1]

Lancer une fusion Ă  3 points pour les fichiers Ă  fusionner.

git-mktag[1]

Créer un objet étiquette avec une validation supplémentaire.

git-mktree[1]

Construire un objet arbre depuis du texte au format ls-tree.

git-multi-pack-index[1]

Écrire et vérifier les index multi-paquet.

git-pack-objects[1]

CrĂ©er une archive compactĂ©e d’objets.

git-prune-packed[1]

Éliminer les objets supplémentaires qui sont déjà présents dans les fichiers pack.

git-read-tree[1]

Lire l’information d’arbre dans l’index.

git-replay[1]

EXPÉRIMENTAL : Rejoue les commits sur une nouvelle base, travaille avec un dépôt nu aussi.

git-symbolic-ref[1]

Lire, modifier et supprimer les références symboliques.

git-unpack-objects[1]

Dépaqueter les objets depuis une archive empaquetée.

git-update-index[1]

Enregistrer le contenu de fichiers de l’arbre de travail dans l’index.

git-update-ref[1]

Mettre Ă  jour le nom d’objet stockĂ© dans une rĂ©fĂ©rence en toute sĂ©curitĂ©.

git-write-tree[1]

CrĂ©er un objet arbre depuis l’index courant.

Commandes d’interrogation

git-cat-file[1]

Fournit le contenu ou les détails pour les objets du dépôt.

git-cherry[1]

Trouver les commits Ă  appliquer en amont.

git-diff-files[1]

Comparer des fichiers dans l’arbre de travail et l’index.

git-diff-index[1]

Comparer un arbre Ă  l’arbre de travail ou l’index.

git-diff-tree[1]

Compare le contenu et le mode des blobs trouvés via deux objets arbre.

git-for-each-ref[1]

Afficher des informations sur chaque référence.

git-for-each-repo[1]

Exécuter une commande Git sur une liste de dépôts.

git-get-tar-commit-id[1]

Extraire l’ID du commit depuis une archive crĂ©Ă©e par git-archive.

git-ls-files[1]

Afficher des informations sur les fichiers de l’index et de l’arbre de travail.

git-ls-remote[1]

Lister les références dans un dépôt distant.

git-ls-tree[1]

Afficher le contenu d’un objet arbre.

git-merge-base[1]

Trouver un ancĂŞtre aussi bon que possible pour une fusion.

git-name-rev[1]

Trouver les noms symboliques pour des révisions données.

git-pack-redundant[1]

Trouver les fichiers pack redondants.

git-rev-list[1]

Afficher les objets commit dans l’ordre chronologique inverse.

git-rev-parse[1]

Analyser et préparer les paramètres.

git-show-index[1]

Afficher l’index de l’archive empaquetĂ©e.

git-show-ref[1]

Lister les références du dépôt local.

git-unpack-file[1]

CrĂ©er un fichier temporaire avec le contenu d’un blob.

git-var[1]

Afficher un variable logique de Git.

git-verify-pack[1]

Valider des fichiers d’archive Git empaquetĂ©s.

En gĂ©nĂ©ral, les commandes d’interrogation ne modifient pas les fichiers dans l’arbre de travail.

Synchronisation des dépôts

git-daemon[1]

Un serveur vraiment très simple pour les dépôts Git.

git-fetch-pack[1]

Recevoir des objets manquants depuis un autre dépôt.

git-http-backend[1]

Implantation côté serveur de Git sur HTTP.

git-send-pack[1]

Pousser des objets sur le protocole Git sur un autre dépôt.

git-update-server-info[1]

Mettre Ă  jour le fichier d’informations auxiliaires pour aider les serveurs idiots.

Les commandes suivantes sont des utilitaires utilisés par celles ci-dessus ; les utilisateurs finaux ne les utilisent généralement pas directement.

git-http-fetch[1]

Télécharger depuis un dépôt Git distant via HTTP.

git-http-push[1]

Pousser des objets par HTTP/DAV vers un autre dépôt.

git-receive-pack[1]

Recevoir ce qui est poussé dans un dépôt.

git-shell[1]

Shell de login restreint pour un accès SSH vers Git seulement.

git-upload-archive[1]

Renvoyer une archive dans git-archive.

git-upload-pack[1]

Renvoyer des objets empaquetés dans git-fetch-pack.

Commandes assistantes internes

Ce sont des commandes assistantes internes utilisĂ©es par d’autres commandes ; les utilisateurs finaux ne les utilisent gĂ©nĂ©ralement pas directement.

git-check-attr[1]

Afficher les informations de gitattributes.

git-check-ignore[1]

DĂ©boguer gitignore / les fichiers d’exclusion.

git-check-mailmap[1]

Afficher les noms canoniques et les adresses courriel des contacts.

git-check-ref-format[1]

S’assurer qu’un nom de rĂ©fĂ©rence est bien formĂ©.

git-column[1]

Afficher les données en colonnes.

git-credential[1]

RĂ©cupĂ©rer et sauvegarder les certificats d’utilisateur.

git-credential-cache[1]

Assistant pour maintenir temporairement en mémoire les mots de passe.

git-credential-store[1]

Assistant pour sauvegarder les certificats sur disque.

git-fmt-merge-msg[1]

Produire un message de validation de fusion.

git-hook[1]

Lancer les crochets git.

git-interpret-trailers[1]

Ajouter ou analyser l’information structurĂ©e dans les messages de validation.

git-mailinfo[1]

Extraire la rustine et l’information de d’auteur depuis un simple message de courriel.

git-mailsplit[1]

Programme simple de découpage de mbox UNIX.

git-merge-one-file[1]

Le programme assistant standard Ă  utiliser avec git-merge-index.

git-patch-id[1]

Calculer l’ID unique d’une rustine.

git-sh-i18n[1]

Le code d’initialisation i18n pour les scripts shell.

git-sh-setup[1]

Le code d’initialisation commun aux scripts shell Git.

git-stripspace[1]

Retirer les espaces inutiles.

Guides

Les pages de documentation suivantes sont des guides sur les concepts Git.

gitcore-tutorial[7]

Un tutoriel de base sur Git pour les développeurs.

gitcredentials[7]

Fournir des noms d’utilisateur et des mots de passe à Git.

gitcvs-migration[7]

Git pour les utilisateurs de CVS.

gitdiffcore[7]

Bricoler la sortie diff.

giteveryday[7]

Un ensemble minimum de commandes utiles pour l’utilisation quotidienne de Git.

gitfaq[7]

Foire aux questions sur l’utilisation de Git.

gitglossary[7]

Un glossaire de Git.

gitnamespaces[7]

Espaces de noms Git.

gitremote-helpers[7]

Programmes assistants pour interagir avec les dépôts distants.

gitsubmodules[7]

Montage d’un dĂ©pĂ´t Ă  l’intĂ©rieur d’un autre.

gittutorial[7]

Une introduction tutorielle Ă  Git.

gittutorial-2[7]

Une introduction tutorielle à Git : deuxième partie.

gitworkflows[7]

Un aperçu des flux de travail recommandés avec Git.

Interfaces de dépôt, de commande et de fichiers

Cette documentation traite des interfaces de dépôt et de commande que les utilisateurs sont censés utiliser directement. Pour plus de détails sur les critères, consultez --user-formats dans git-help[1].

gitattributes[5]

DĂ©finir les attributs par chemin.

gitcli[7]

Interface et conventions de la ligne de commande Git.

githooks[5]

Crochets utilisés par Git.

gitignore[5]

Spécifie les fichiers intentionnellement non suivis à ignorer.

gitmailmap[5]

Fais correspondre les noms des auteurs/validateurs et/ou les adresses Ă©lectroniques.

gitmodules[5]

Définition des propriétés des sous-modules.

gitrepository-layout[5]

Disposition d’un dĂ©pĂ´t Git.

gitrevisions[7]

Spécifier les révisions et les plages pour Git.

formats de fichiers, protocoles et interfaces de niveau développeur

Cette documentation traite des formats de fichiers, des protocoles de communication et d’autres interfaces pour les dĂ©veloppeur de git. Voir --developer-interfaces dans git-help[1].

gitformat-bundle[5]

Le format de fichier colis.

gitformat-chunk[5]

Formats de fichiers basés sur des tronçons.

gitformat-commit-graph[5]

Le format de graphe de commit de Git.

gitformat-index[5]

Le format d’index Git.

gitformat-pack[5]

Format interne de Git.

gitformat-signature[5]

Formats de signature cryptographique Git.

gitprotocol-capabilities[5]

Capacités des protocoles v0 et v1.

gitprotocol-common[5]

Choses communes Ă  divers protocoles.

gitprotocol-http[5]

Protocoles Git basés sur HTTP.

gitprotocol-pack[5]

Comment les paquets sont transférés dans les transmissions.

gitprotocol-v2[5]

Protocole de transmission Git, Version 2.

MĂ©canisme de configuration

Git utilise un format texte simple pour stocker les personnalisations qui sont spĂ©cifique au dĂ©pĂ´t et Ă  l’utilisateur. Un tel fichier de configuration peut ressembler Ă  ceci :

#
# Un caractère A '#' ou ';' indique un commentaire.
#

; variables de base
[core]
	; ne pas faire confiance au mode des fichiers
	filemode = false

; identité de l'utilisateur
[user]
	name = "Junio C Hamano"
	email = "gitster@pobox.com"

Diverses commandes lisent le fichier de configuration et modifient leur comportement en conséquence. Voir git-config[1] pour une liste et plus de détails sur le mécanisme de configuration.

Terminologie des identifiants

<objet>

Indique le nom de l’objet pour tout type d’objet.

<blob>

Indique un nom d’objet blob.

<arbre>

Indique un nom d’objet d’arbre.

<commit>

Indique un nom d’objet commit.

<arbre-esque>

Indique un nom d’objet arbre, commit ou Ă©tiquette. Une commande qui prend un argument <arbre-esque> veut finalement opĂ©rer sur un objet <arbre> mais dĂ©rĂ©fĂ©rences automatiquement les objets <commit> et <Ă©tiquette> qui pointent sur un <arbre>.

<commit-esque>

Indique un nom d’objet commit ou Ă©tiquette. Une commande qui prend un argument <commit-esque> veut ultimement opĂ©rer sur un objet <commit>, mais dĂ©rĂ©fĂ©rence automatiquement des objets <Ă©tiquette> qui pointent sur un <commit>.

<type>

Indique qu’un type d’objet est requis. Actuellement, soit`blob`, arbre, commit, ou Ă©tiquette.

<fichier>

Indique un nom de fichier - presque toujours relatif Ă  la racine de la structure de l’arbre que`GIT_INDEX_FILE` dĂ©crit.

Identificateurs symboliques

Toute commande Git acceptant n’importe quel <objet> peut Ă©galement utiliser la notation symbolique suivante :

HEAD

indique la tĂŞte de la branche actuelle.

<Ă©tiquette>

un nom valide d’Ă©tiquette (c.-Ă -d. une rĂ©fĂ©rence refs/tags/<Ă©tiquette>).

<tĂŞte>

un nom valide de tête (c.-à-d. une référence refs/heads/<tête>).

Pour une liste plus complète des façons d’Ă©peler les noms d’objets, voir la section « SPÉCIFICATION DE RÉVISIONS" dans gitrevisions[7].

Structure de fichier/répertoire

Veuillez consulter le document gitrepository-layout[5].

Lire githooks[5] pour plus de détails sur chaque crochet.

Les SCM de niveau supérieur peuvent fournir et gérer des informations supplémentaires dans le $GIT_DIR.

Terminologie

Veuillez consulter gitglossary[7].

Variables d’environnement

Diverses commandes Git sont sensibles aux variables d’environnement et modifient leur comportement. Les variables d’environnement marquĂ©es comme "BoolĂ©enne" prennent leurs valeurs de la mĂŞme manière que les variables de configuration Ă©valuĂ©es comme BoolĂ©enne, p.ex. "true", "yes", "on" et les chiffres positifs sont pris comme "yes".

Voici les variables :

Le dépôt Git

Ces variables d’environnement s’appliquent Ă  toutes les commandes du cĹ“ur de Git. Nb : il est intĂ©ressant de noter qu’elles peuvent ĂŞtre utilisĂ©es/surchargĂ©es par les SCMS agissant par-dessus Git alors faites attention si vous utilisez un frontal externe.

GIT_INDEX_FILE

Cette variable d’environnement spĂ©cifie un fichier d’index alternatif. Si elle n’est pas spĂ©cifiĂ©e, la valeur par dĂ©faut $GIT_DIR/index est utilisĂ©e.

GIT_INDEX_VERSION

Cette variable d’environnement spĂ©cifie quelle version index est utilisĂ©e lors de l’Ă©criture du fichier index. Il n’affectera pas les fichiers d’index existants. Par dĂ©faut index version 2 ou 3 est utilisĂ©. Voir git-update-index[1] pour plus d’informations.

GIT_OBJECT_DIRECTORY

Si le rĂ©pertoire de stockage d’objets est spĂ©cifiĂ© via cette variable d’environnement, alors les rĂ©pertoires sha1 sont crĂ©Ă©s dedans - sinon le rĂ©pertoire par dĂ©faut $GIT_DIR/objects est utilisĂ©.

GIT_ALTERNATE_OBJECT_DIRECTORIES

En raison de la nature immuable des objets Git, de vieux objets peuvent ĂŞtre archivĂ©s dans des rĂ©pertoires partagĂ©s en lecture seule. Cette variable spĂ©cifie une liste avec ":" pour sĂ©parateur (";" sur Windows) des rĂ©pertoires d’objets Git qui peuvent ĂŞtre utilisĂ©s pour rechercher des objets Git. Aucun nouvel objet ne sera Ă©crit dans ces rĂ©pertoires.

Les entrées qui commencent par " (double-guillemets) seront interprétées comme des chemins cités de type C, en éliminant les guillemets et les doubles guillemets et en respectant les échappements par barre oblique inverse. Par exemple, la valeur "chemin-avec-\"-et-:-a-l-interieur":chemin-simple a deux chemins : chemin-avec-"-et-:-a-l-interieur et chemin-simple.

GIT_DIR

Si la variable d’environnement GIT_DIR' est dĂ©finie, elle spĂ©cifie un chemin Ă  utiliser au lieu de `.git par dĂ©faut pour la base du dĂ©pĂ´t. L’option de ligne de commande --git-dir dĂ©finit Ă©galement cette valeur.

GIT_WORK_TREE

RĂ©gler le chemin vers la racine de l’arbre de travail. Cela peut Ă©galement ĂŞtre contrĂ´lĂ© par l’option de ligne de commande --work-tree et la variable de configuration de core.worktree.

GIT_NAMESPACE

DĂ©finir l’espace de nom Git ; voir gitnamespaces[7] pour plus de dĂ©tails. L’option de ligne de commande --namespace dĂ©finit Ă©galement cette valeur.

GIT_CEILING_DIRECTORIES

Cela devrait ĂŞtre une liste des chemins absolus sĂ©parĂ©s par des caractères deux point. Si elle est dĂ©finie, il s’agit d’une liste de rĂ©pertoires que Git ne devrait pas visiter pendant la recherche d’un rĂ©pertoire de dĂ©pĂ´t (utile pour exclure les rĂ©pertoires sur rĂ©seau lents). Elle n’exclura pas le rĂ©pertoire de travail actuel ou un GIT_DIR indiquĂ© sur la ligne de commande ou dans l’environnement. Normalement, Git doit lire les entrĂ©es dans cette liste et rĂ©soudre tout lien symbolique qui pourrait ĂŞtre prĂ©sent pour les comparer avec le rĂ©pertoire courant. Cependant, si mĂŞme cet accès est lent, vous pouvez ajouter une entrĂ©e vide Ă  la liste pour dire Ă  Git que les entrĂ©es subsĂ©quentes ne sont pas des liens symboliques et ne doivent pas ĂŞtre rĂ©solues ; par exemple, GIT_CEILING_DIRECTORIES=/peutetre/symlink://non/symlink/mais/lent.

GIT_DISCOVERY_ACROSS_FILESYSTEM

Lorsque Git se trouve dans un rĂ©pertoire qui n’a pas de rĂ©pertoire ".git", Git tente de trouver un tel rĂ©pertoire dans les rĂ©pertoires parent pour trouver le sommet de l’arbre de travail, mais par dĂ©faut il ne dĂ©passe pas les limites du système de fichiers actuel. Cette variable d’environnement BoolĂ©enne peut ĂŞtre dĂ©finie Ă  true pour dire Ă  Git de ne pas s’arrĂŞter aux limites des systèmes de fichiers. Comme GIT_CEILING_DIRECTORIES, cela n’affectera pas un rĂ©pertoire de dĂ©pĂ´t explicite indiquĂ© via GIT_DIR ou sur la ligne de commande.

GIT_COMMON_DIR

Si cette variable est dĂ©finie comme un chemin, les fichiers hos de l’arbre-de-travail qui sont normalement dans $GIT_DIR seront pris depuis ce chemin Ă  la place. Les fichiers spĂ©cifiques Ă  des arbres-de-travail tels que HEAD ou index sont extraits de $GIT_DIR. Voir gitrepository-layout[5] et git-worktree[1] pour plus de dĂ©tails. Cette variable a une prĂ©sĂ©ance infĂ©rieure Ă  d’autres variables de chemin comme GIT_INDEX_FILE, GIT_OBJECT_DIRECTORY…​

GIT_DEFAULT_HASH

Si cette variable est dĂ©finie, l’algorithme d’empreinte par dĂ©faut pour les nouveaux dĂ©pĂ´ts sera dĂ©fini Ă  cette valeur. Cette valeur est ignorĂ©e lors du clonage et le rĂ©glage du dĂ©pĂ´t distant est toujours utilisĂ©. La valeur par dĂ©faut est "sha1". Voir --object-format dans git-init[1].

GIT_DEFAULT_REF_FORMAT

Si cette variable est définie, le format du moteur de réferences par défaut pour les nouveaux dépôts sera défini à cette valeur. La valeur par défaut est "files". Voir --ref-format dans git-init[1].

Commits Git

GIT_AUTHOR_NAME

Le nom lisible utilisĂ© dans l’identitĂ© de l’auteur lors de la crĂ©ation d’objets de commit ou d’Ă©tiquette, ou lors de l’Ă©criture des reflogs. Surcharge les paramètres de configuration user.name et author.name.

GIT_AUTHOR_EMAIL

L’adresse courriel utilisĂ©e dans l’identitĂ© de l’auteur lors de la crĂ©ation d’objets commit ou Ă©tiquette, ou lors de l’Ă©criture de reflogs. Surcharge les paramètres de configuration user.email et author.email.

GIT_AUTHOR_DATE

La date utilisĂ©e pour l’identitĂ© de l’auteur lors de la crĂ©ation d’objets commit ou Ă©tiquette, ou lors de l’Ă©criture de reflogs. Voir git-commit[1] pour les formats valides.

GIT_COMMITTER_NAME

Le nom lisible utilisĂ© dans l’identitĂ© du validateur lors de la crĂ©ation d’objets commit ou Ă©tiquette, ou lors de l’Ă©criture de reflogs. Surcharge les paramètres de configuration user.name et committer.name.

GIT_COMMITTER_EMAIL

L’adresse courriel utilisĂ©e dans l’identitĂ© de l’auteur lors de la crĂ©ation d’objets commit ou Ă©tiquette, ou lors de l’Ă©criture de reflogs. Surcharge les paramètres de configuration user.email et committer.email.

GIT_COMMITTER_DATE

La date utilisĂ©e pour l’identitĂ© du validateur lors de la crĂ©ation d’objets commit ou Ă©tiquette, ou lors de l’Ă©criture de reflogs. Voir git-commit[1] pour les formats valides.

EMAIL

L’adresse de courriel utilisĂ©e dans les identitĂ©s de l’auteur et du validateur si aucune autre variable d’environnement ou configuration pertinente n’a Ă©tĂ© dĂ©finie.

Diffs Git

GIT_DIFF_OPTS

Seul le paramètre valide est "--unified=??" ou "-u??" pour dĂ©finir le nombre de lignes de contexte affichĂ©es lors de la crĂ©ation d’une diff unifiĂ©e. Cela a prĂ©sĂ©ance sur toute valeur d’option "-U" ou "--unified" passĂ©e sur la ligne de commande Git diff.

GIT_EXTERNAL_DIFF

Lorsque la variable d’environnement GIT_EXTERNAL_DIFF est dĂ©finie, le programme nommĂ© par elle est appelĂ© pour gĂ©nĂ©rer des diffs, et Git n’utilise pas sa machinerie de diff intĂ©grĂ©e. Pour un chemin qui est ajoutĂ©, enlevĂ© ou modifiĂ©, GIT_EXTERNAL_DIFF est appelĂ© avec 7 paramètres :

chemin vieux-fichier vieux-hex vieux-mode nouveau-fichier nouveau-hex nouveau-mode

où :

vieux-fichier et nouveau-fichier

sont des fichiers que GIT_EXTERNAL_DIFF peut utiliser pour lire le contenu de vieux et nouveau

vieux-hex et nouveau-hex

sont les empreintes SHA-1 de 40 caractère hexadécimaux,

vieux-mode et nouveau-mode

sont la représentation octale des modes de fichiers.

Les paramètres de fichier peuvent indiquer le fichier de travail de l’utilisateur (par exemple nouveau-fichier dans "git-diff-files"), /dev/null (par exemple vieux-fichier quand un nouveau fichier est ajoutĂ©), ou un fichier temporaire (par exemple vieux-fichier dans l’index). GIT_EXTERNAL_DIFF n’a pas Ă  se soucier de supprimer le fichier temporaire --il le sera quand GIT_EXTERNAL_DIFF se terminera.

Pour un chemin qui n’est pas fusionnĂ©, GIT_EXTERNAL_DIFF est appelĂ© avec 1 paramètre, <chemin>.

Pour chaque chemin GIT_EXTERNAL_DIFF appelé, deux variables d`environnement, GIT_DIFF_PATH_COUNTER et GIT_DIFF_PATH_TOTAL sont définies.

GIT_EXTERNAL_DIFF_TRUST_EXIT_CODE

If this Boolean environment variable is set to true then the GIT_EXTERNAL_DIFF command is expected to return exit code 0 if it considers the input files to be equal or 1 if it considers them to be different, like diff(1). If it is set to false, which is the default, then the command is expected to return exit code 0 regardless of equality. Any other exit code causes Git to report a fatal error.

GIT_DIFF_PATH_COUNTER

Un compteur basĂ© sur 1 incrĂ©mentĂ© d’un pour chaque chemin.

GIT_DIFF_PATH_TOTAL

Le nombre total de chemins.

autre

GIT_MERGE_VERBOSITY

Un nombre contrôlant la quantité de production affichée par la stratégie de fusion récursive. Surcharge merge.verbosity. Voir git-merge[1]

GIT_PAGER

Cette variable d’environnement remplace $PAGER. Si elle est dĂ©finie Ă  une chaĂ®ne vide ou Ă  la valeur "cat", Git ne lancera pas de pager. Voir aussi l’option core.pager dans git-config[1].

GIT_PROGRESS_DELAY

Un nombre qui contrĂ´le le nombre de secondes Ă  retarder avant d’afficher des indicateurs de progrès optionnels. Valeur par dĂ©faut Ă  2.

GIT_EDITOR

Cette variable d’environnement remplace $EDITOR et $VISUAL. Elle est utilisĂ©e par plusieurs commandes Git lorsque, en mode interactif, un Ă©diteur doit ĂŞtre lancĂ©. Voir aussi git-var[1] et l’option core.editor dans git-config[1].

GIT_SEQUENCE_EDITOR

Cette variable d’environnement remplace l’Ă©diteur Git configurĂ© lors de l’Ă©dition de la liste de todo d’un rebasage interactif. Voir aussi git-rebase[1] et l’option sequence.editor dans git-config[1].

GIT_SSH
GIT_SSH_COMMAND

Si l’une de ces variables d’environnement est dĂ©finie, git fetch et git push utiliseront la commande spĂ©cifiĂ©e au lieu de ssh lorsqu’elles doivent se connecter Ă  un système distant. Les paramètres de ligne de commande passĂ©s Ă  la commande configurĂ©e sont dĂ©terminĂ©s par la variante de ssh. Voir l’option ssh.variant dans git-config[1] pour plus de dĂ©tails.

$GIT_SSH_COMMAND a prioritĂ© sur $GIT_SSH, et est interprĂ©tĂ© par le shell, ce qui permet d’inclure des arguments supplĂ©mentaires. ‘$GIT_SSH’ d’autre part doit ĂŞtre juste le chemin vers un programme (qui peut ĂŞtre un script shell d’emballage, si des arguments supplĂ©mentaires sont nĂ©cessaires).

Habituellement, il est plus facile de configurer toutes les options souhaitées à travers votre fichier .ssh/config personnel. Veuillez consulter votre documentation pour plus de détails.

GIT_SSH_VARIANT

Si cette variable d’environnement est dĂ©finie, elle remplace l’autodĂ©tection de Git pour dĂ©finir si GIT_SSH/GIT_SSH_COMMAND/core.sshCommand se rĂ©fère Ă  OpenSSH, plink ou tortoiseplink. Cette variable remplace le paramètre de configuration ssh.variant qui sert le mĂŞme but.

GIT_SSL_NO_VERIFY

RĂ©gler et exporter de cette variable d’environnement avec n’importe quelle valeur indique Ă  Git de ne pas vĂ©rifier le certificat SSL lors de la rĂ©cupĂ©ration ou de la poussĂ©e sur HTTPS.

GIT_ATTR_SOURCE

DĂ©finit l’arbre-esque dont gitattributes sera lu.

GIT_ASKPASS

Si cette variable d’environnement est dĂ©finie, les commandes Git qui doivent acquĂ©rir des mots de passe ou des phrases de passe (p. ex. pour l’authentification HTTP ou IMAP) appellent ce programme avec un prompt appropriĂ© comme argument de ligne de commande et lisent le mot de passe de son STDOUT. Voir aussi l’option core.askPass dans git-config[1].

GIT_TERMINAL_PROMPT

Si cette variable d’environnement boolĂ©enne est dĂ©finie Ă  false, git ne posera pas de questions sur le terminal (p. ex., lors de la demande d’authentification HTTP).

GIT_CONFIG_GLOBAL
GIT_CONFIG_SYSTEM

Prendre la configuration à partir des fichiers donnés au lieu des fichiers de configuration globaux ou au niveau système. Si GIT_CONFIG_SYSTEM est défini, le fichier de configuration du système défini au moment de la compilation (généralement /etc/gitconfig) ne sera pas lu. De même, si GIT_CONFIG_GLOBAL est défini, ni $HOME/.gitconfig ni $XDG_CONFIG_HOME/git/config ne seront pas lus. Peut être défini à /dev/null pour sauter les fichiers de configuration du niveau correspondant.

GIT_CONFIG_NOSYSTEM

Indique qu’il faut sauter la lecture des paramètres du fichier au niveau système $(prefix)/etc/gitconfig . Cette variable d’environnement boolĂ©enne peut ĂŞtre utilisĂ©e avec $HOME et $XDG_CONFIG_HOME pour crĂ©er un environnement prĂ©visible pour un script pointilleux, ou vous pouvez la dĂ©finir Ă  true pour Ă©viter temporairement d’utiliser un fichier /etc/gitconfig buggĂ© en attendant que quelqu’un avec suffisamment de permissions puisse le rĂ©parer.

GIT_FLUSH

Si cette variable d’environnement est dĂ©finie Ă  "1", alors les commande telles que git blame (en mode diffĂ©rentiel), git rev-list, git log, git check-attr et git check-ignore forceront un vidage du flux de sortie après que chaque enregistrement a Ă©tĂ© Ă©crit. Si cette variable est dĂ©finie Ă  "0", la sortie de ces commandes sera faite en utilisant des E/S complètement tamponnĂ©s. Si cette variable d’environnement n’est pas rĂ©glĂ©e, Git choisira un vidage Ă  chaque tampon ou Ă  chaque enregistrement selon que stdout semble ĂŞtre redirigĂ© vers un fichier ou non.

GIT_TRACE

Active des messages gĂ©nĂ©raux de trace, comme par exemple l’expansion d’alias, l’exĂ©cution de commandes intĂ©grĂ©es et l’exĂ©cution de commandes externes.

Si cette variable est définie à "1, "2" ou "true" (la comparaison est insensible à la casse), les messages de trace seront imprimés sur stderr.

Si la variable est dĂ©finie Ă  une valeur entière supĂ©rieure Ă  2 et infĂ©rieure Ă  10 (strictement) alors Git interprĂ©tera cette valeur comme un descripteur de fichier ouvert et tentera d’Ă©crire les messages de trace dans ce descripteur de fichier.

Sinon, si la variable est dĂ©finie Ă  un chemin absolu (dĂ©marrant avec un caractère /), Git l’interprĂ©tera comme un chemin de fichier et tentera d’y ajouter les messages de trace.

Désinitialiser la variable, ou la définir à vide, "0" ou "false" (casse insensible) désactive les messages de trace.

GIT_TRACE_FSMONITOR

Permet de tracer des messages pour l’extension de moniteur du système de fichiers. Voir GIT_TRACE pour les options de sortie de trace disponibles.

GIT_TRACE_PACK_ACCESS

Active la trace des messages pour tous les accès aux paquets. Pour chaque accès, le nom du fichier paquet et un décalage dans le paquet sont enregistrés. Cela peut être utile pour résoudre certains problèmes de performance liés aux paquets. Voir GIT_TRACE pour les options de sortie de trace disponibles.

GIT_TRACE_PACKET

Active les messages de trace pour tous les paquets entrant ou sortant d’un programme donnĂ©. Cela peut aider Ă  dĂ©boguer la nĂ©gociation d’objets ou d’autres questions de protocole. Le traçage est dĂ©sactivĂ© dans un paquet commençant par "PACK" (mais voir GIT_TRACE_PACKFILE ci-dessous). Voir GIT_TRACE pour les options de sortie de trace disponibles.

GIT_TRACE_PACKFILE

Active la trace des paquets envoyĂ©s ou reçus par un programme donnĂ©. Contrairement Ă  d’autres sorties de trace, cette trace est verbatim : pas d’en-tĂŞtes, et pas de citation de donnĂ©es binaires. Vous voulez presque certainement diriger cette sortie dans un fichier (par exemple, GIT_TRACE_PACKFILE=/tmp/mon.pack) plutĂ´t que de l’afficher sur le terminal ou de le mĂ©langer avec d’autres sorties de trace.

Notez que ce n’est actuellement mis en Ĺ“uvre que pour le cĂ´tĂ© client des clonages et des rĂ©cupurations.

GIT_TRACE_PERFORMANCE

Active les messages de trace liĂ©s Ă  la performance, par exemple le temps d’exĂ©cution total de chaque commande Git. Voir GIT_TRACE pour les options de sortie de trace disponibles.

GIT_TRACE_REFS

Active les messages de trace pour les opérations sur la base de données de références. Voir GIT_TRACE pour les options de sortie de trace disponibles.

GIT_TRACE_SETUP

Active les messages de trace .git, l’arbre de travail et le rĂ©pertoire de travail courant après que Git a terminĂ© sa phase de configuration. Voir GIT_TRACE pour les options de sortie de trace disponibles.

GIT_TRACE_SHALLOW

Active les messages de trace qui peuvent aider à déboguer des récupérations / clonage de dépôts superficiels. Voir GIT_TRACE pour les options de sortie de trace disponibles.

GIT_TRACE_CURL

Permet un traçage complet par curl de toutes les données entrantes et sortantes, y compris les informations descriptives, du protocole de transport git. Ceci est similaire à faire du curl --trace-ascii sur la ligne de commande. Voir GIT_TRACE pour les options de sortie de trace disponibles.

GIT_TRACE_CURL_NO_DATA

Lorsqu’une trace de curl est activĂ©e (voir GIT_TRACE_CURL ci-dessus), ne pas dĂ©charger les donnĂ©es (c’est-Ă -dire que seules les lignes d’info et les en-tĂŞtes sont tracĂ©s).

GIT_TRACE2

Active des messages de trace plus détaillés par la bibliothèque "trace2". La sortie de GIT_TRACE2 est un simple format texte pour consommation humaine.

Si cette variable est définie à "1, "2" ou "true" (la comparaison est insensible à la casse), les messages de trace seront imprimés sur stderr.

Si la variable est dĂ©finie Ă  une valeur entière supĂ©rieure Ă  2 et infĂ©rieure Ă  10 (strictement) alors Git interprĂ©tera cette valeur comme un descripteur de fichier ouvert et tentera d’Ă©crire les messages de trace dans ce descripteur de fichier.

Sinon, si la variable est dĂ©finie Ă  un chemin absolu (dĂ©marrant avec un caractère /), Git l’interprĂ©tera comme un chemin de fichier et tentera d’y ajouter les messages de trace. Si le chemin existe dĂ©jĂ  et est un rĂ©pertoire, les messages de trace seront Ă©crits sur des fichiers (un par processus) dans ce rĂ©pertoire, nommĂ©s selon le dernier composant du SID et un compteur optionnel (pour Ă©viter les collisions de nom de fichier).

En outre, si la variable est définie à af_unix:[<type-de-socket>]<chemin-absolu>, Git va essayer d'ouvrir le chemin en tant que socket de domaine Unix. Le type de socket peut être soit `stream ou dgram.

Désinitialiser la variable, ou la définir à vide, "0" ou "false" (casse insensible) désactive les messages de trace.

Voir la documentation de Trace2 pour tous les détails.

GIT_TRACE2_EVENT

Ce rĂ©glage Ă©crit un format JSON adaptĂ© Ă  l’interprĂ©tation automatique. Voir GIT_TRACE2 pour les options de sortie de trace disponibles et la documentation de Trace2 pour tous les dĂ©tails.

GIT_TRACE2_PERF

En plus des messages texte disponibles dans GIT_TRACE2, ce paramètre écrit un format à colonne pour comprendre les régions de nidification. Voir GIT_TRACE2 pour les options de sortie de trace disponibles et la documentation de Trace2 pour tous les détails.

GIT_TRACE_REDACT

Par dĂ©faut, lorsque le traçage est activĂ©, Git caviarde les valeurs des cookies, l’en-tĂŞte "Authorization:", l’en-tĂŞte "Proxy-Authorization:" et les URIs de paquets. DĂ©finissez cette variable d’environnement boolĂ©enne Ă  false pour empĂŞcher ce caviardage.

GIT_NO_REPLACE_OBJECTS

RĂ©gler et exporter cette variable d’environnement indique Ă  Git d’ignorer les rĂ©fs de remplacement et de ne pas remplacer les objets Git.

GIT_LITERAL_PATHSPECS

RĂ©gler cette variable d’environnement boolĂ©enne Ă  true va forcer Git Ă  traiter tous les spĂ©cificateurs de chemin littĂ©ralement, plutĂ´t que comme des motifs glob. Par exemple, exĂ©cuter GIT_LITERAL_PATHSPECS=1 git log -- `\*.c cherchera des commits qui touchent le chemin *.c, pas des chemins auquels le glob *.c correspond. Vous pourriez vouloir cela si vous fournissez des chemins littĂ©raux vers Git (p. ex., des chemins prĂ©cĂ©demment donnĂ©s par git ls-tree, --raw sortie diff, etc.).

GIT_GLOB_PATHSPECS

RĂ©gler cette variable d’environnement boolĂ©enne Ă  true va indiquer Ă  Git de traiter tous les spĂ©cificateurs de chemin comme des motifs glob (aka magie "glob").

GIT_NOGLOB_PATHSPECS

RĂ©gler cette variable d’environnement boolĂ©enne Ă  vrai indique Ă  Git de traiter tous les spĂ©cificateurs de chemin comme littĂ©ral (aka magie "littĂ©rale").

GIT_ICASE_PATHSPECS

RĂ©gler cette variable d’environnement boolĂ©enne Ă  true va indiquer Ă  Git de traiter tous les spĂ©cificateurs de chemins comme insensibles Ă  la casse.

GIT_NO_LAZY_FETCH

RĂ©gler cette variable d’environnement boolĂ©enne Ă  true va indiquer Ă  Git de ne pas rĂ©cupĂ©rer Ă  la demande les objets manquants depuis le distant prometteur.

GIT_REFLOG_ACTION

Lorsqu’une rĂ©f est mis Ă  jour, des entrĂ©es de reflog sont crĂ©Ă©es pour suivre la raison pour laquelle la rĂ©f a Ă©tĂ© mise Ă  jour (ce qui est gĂ©nĂ©ralement le nom de la commande de haut niveau qui a mis Ă  jour la rĂ©f), en plus des anciennes et nouvelles valeurs de la rĂ©f. Une commande scriptĂ©e de porcelaine peut utiliser la fonction set_reflog_action helper dans git-sh-setup pour dĂ©finir son nom Ă  cette variable lorsqu’elle est invoquĂ©e comme commande de niveau supĂ©rieur par l’utilisateur final, pour l’enregistrer dans le corps du reflog.

GIT_REF_PARANOIA

Si cette variable d’environnement boolĂ©enne est dĂ©finie Ă  false, ignorer les rĂ©fs cassĂ©es ou mal nommĂ©es lors de l’itĂ©ration sur les listes de rĂ©fs. Habituellement, Git tentera d’inclure tous ces rĂ©fs, ce qui peut entraĂ®ner l’Ă©chec de certaines opĂ©rations. Cela est gĂ©nĂ©ralement prĂ©fĂ©rable, car il vaut mieux abandonner les opĂ©rations potentiellement destructrices (par exemple, git-prune[1]) plutĂ´t que d’ignorer les rĂ©fs cassĂ©es (et donc considĂ©rer l’histoire qu’elles pointent comme inutiles Ă  sauver). La valeur par dĂ©faut est 1 (c’est-Ă -dire ĂŞtre paranoĂŻaque sur la dĂ©tection et abandon de toutes les opĂ©rations). Vous ne devriez normalement pas avoir besoin de dĂ©finir ceci Ă  0, mais ceci peut ĂŞtre utile quand vous essayez de sauver des donnĂ©es d’un dĂ©pĂ´t corrompu.

GIT_COMMIT_GRAPH_PARANOIA

When loading a commit object from the commit-graph, Git performs an existence check on the object in the object database. This is done to avoid issues with stale commit-graphs that contain references to already-deleted commits, but comes with a performance penalty.

The default is "false", which disables the aforementioned behavior. Setting this to "true" enables the existence check so that stale commits will never be returned from the commit-graph at the cost of performance.

GIT_ALLOW_PROTOCOL

Si elle est définie comme une liste de protocoles séparés par des deux-points, se comporter comme si protocol.allow est défini à never , et définit protocol.<nom>.allow de chacun des protocoles énumérés à always(ce qui surcharge toute configuration existante). Voir la description de protocol.allow dans git-config[1] pour plus de détails.

GIT_PROTOCOL_FROM_USER

DĂ©finir cette variable d’environnement boolĂ©enne Ă  false pour empĂŞcher les protocoles utilisĂ©s par fetch/push/clone qui sont configurĂ©s Ă  l’Ă©tat utilisateur. Ceci est utile pour limiter l’initialisation rĂ©cursive des sous-modules Ă  partir d’un dĂ©pĂ´t non fiable ou pour des programmes qui fournissentdes URLS potentiellement non fiables aux commandes git. Voir git-config[1] pour plus de dĂ©tails.

GIT_PROTOCOL

Pour usage interne seulement. Utilisé pour établir la liaison en protocole filaire. Contient une liste séparée par deux-point : des clés avec des valeurs facultatives <clé>[=<valeur>]. La présence de clés et de valeurs inconnues doit être ignorée.

Notez que les serveurs peuvent devoir ĂŞtre configurĂ©s pour permettre Ă  cette variable de passer sur certains transports. Elle sera propagĂ©e automatiquement lors de l’accès aux dĂ©pĂ´ts locaux (c’est-Ă -dire file:// ' ou un chemin de système de fichiers), ainsi que via le protocole `git://. Pour git-over-http, elle devrait fonctionner automatiquement dans la plupart des configurations, mais voir la discussion dans git-http-backend[1]. Pour git-over-ssh, le serveur ssh peut ĂŞtre configurĂ© pour permettre aux clients de passer cette variable (par exemple, en utilisant AcceptEnv GIT_PROTOCOL avec OpenSSH).

Cette configuration est facultative. Si la variable n’est pas propagĂ©e, les clients retomberont sur le protocole original "v0" (mais ils peuvent manquer certaines amĂ©liorations ou caractĂ©ristiques de performance). Cette variable n’affecte actuellement que les clonages et les rĂ©cupĂ©rations ; elle n’est pas encore utilisĂ©e pour les poussĂ©es (mais peut-ĂŞtre Ă  l’avenir).

GIT_OPTIONAL_LOCKS

Si cette variable d’environnement boolĂ©enne est dĂ©finie Ă  false, Git effectuera toute opĂ©ration demandĂ©e sans effectuer de sous-opĂ©rations facultatives qui nĂ©cessitent un verrouillage. Par exemple, cela empĂŞchera git status de rafraĂ®chir l’index comme effet secondaire. Ceci est utile pour les processus fonctionnant en arrière-plan qui ne veulent pas provoquer la contention de verrouillage avec d’autres opĂ©rations sur le dĂ©pĂ´t. Par dĂ©faut Ă  1.

GIT_REDIRECT_STDIN
GIT_REDIRECT_STDOUT
GIT_REDIRECT_STDERR

Windows seulement : permettre de rediriger les sockets standard d’entrĂ©e/sortie/erreur sur les chemins spĂ©cifiĂ©s par les variables d’environnement. Ceci est particulièrement utile dans les applications multithread oĂą le moyen canonique de passer les poignĂ©es standard via CreateProcess() n’est pas possible parce qu’il exigerait que les poignĂ©es soient hĂ©ritĂ©es (et par consĂ©quent *chaque processus dĂ©marrĂ© en hĂ©riterait, en bloquant Ă©ventuellement les opĂ©rations rĂ©gulières de Git). Le principal cas d’utilisation prĂ©vu est d’utiliser des tuyaux nommĂ©s pour la communication (par exemple \\.\pipe\mon-git-stdin-123).

Deux valeurs spĂ©ciales sont supportĂ©es : off va tout simplement fermer la poignĂ©e standard correspondante, et si GIT_REDIRECT_STDERR est 2>&1, l’erreur standard sera redirigĂ©e vers la mĂŞme poignĂ©e que la sortie standard.

GIT_PRINT_SHA1_ELLIPSIS (obsolète)

Si elle est dĂ©finie Ă  oui, afficher une ellipse suivant une valeur SHA-1 (abrĂ©gĂ©e). Cela affecte les indications des HEAD dĂ©tachĂ©es (git-checkout[1]) et la sortie diff brute (git-diff[1]). L’impression d’une ellipse dans les cas mentionnĂ©s n’est plus considĂ©rĂ©e comme adĂ©quate et la gestion est susceptible d’ĂŞtre retirĂ©e dans un avenir prĂ©visible (ainsi que la variable).

GIT_ADVICE

If set to 0, then disable all advice messages. These messages are intended to provide hints to human users that may help them get out of problematic situations or take advantage of new features. Users can disable individual messages using the advice.* config keys. These messages may be disruptive to tools that execute Git processes, so this variable is available to disable the messages. (The --no-advice global option is also available, but old Git versions may fail when this option is not understood. The environment variable will be ignored by Git versions that do not understand it.)

Discussion]

Plus de détails sur ce qui suit sont disponibles dans le chapitre des concepts Git du manuel utilisateur et gitcore-tutorial[7].

Un projet Git se compose normalement d’un rĂ©pertoire de travail avec un sous-rĂ©pertoire ".git" au niveau supĂ©rieur. Le rĂ©pertoire .git contient, entre autres, une base de donnĂ©es d’objets compressĂ©s reprĂ©sentant l’historique complet du projet, un fichier "index" qui relie l’historique au contenu actuel de l’arbre de travail, et des pointeurs nommĂ©s dans cet historique comme les Ă©tiquettes et les sommets de branche.

La base de donnĂ©es d’objets contient des objets de trois types principaux : les blobs, qui contiennent des donnĂ©es de fichiers ; les arbres, qui pointent vers des blobs et d’autres arbres pour construire des hiĂ©rarchies de rĂ©pertoires ; et les commits, qui rĂ©fĂ©rencent chacun un seul arbre et un certain nombre de commits parents.

Le commit, Ă©quivalent Ă  ce que d’autres systèmes appellent un « changeset » ou une « version », reprĂ©sente une Ă©tape dans l’historique du projet, et chaque parent reprĂ©sente une Ă©tape immĂ©diatement antĂ©rieure. Les commits avec plus d’un parent reprĂ©sentent des fusions de lignes de dĂ©veloppement indĂ©pendantes.

Tous les objets sont nommĂ©s par l’empreinte SHA-1 de leur contenu, normalement Ă©crite comme une chaĂ®ne de 40 chiffres hexadĂ©cimaux. De tels noms sont uniques Ă  chaque objet. Tout l’historique menant Ă  un commit peut ĂŞtre validĂ© en signant seulement ce commit. Un quatrième type d’objet, l’Ă©tiquette, existe Ă  cette fin.

Lors de la première crĂ©ation, les objets sont stockĂ©s dans des fichiers individuels, mais peuvent plus tard ĂŞtre compressĂ©s ensemble dans des « fichiers paquet » pour plus d’efficacitĂ© .

Les pointeurs nommĂ©s appelĂ©s rĂ©fs marquent des points intĂ©ressants dans l’historique. Une rĂ©f peut contenir le nom SHA-1 d’un objet ou le nom d’une autre rĂ©f (cette dernière est appelĂ©e une "rĂ©f symbolique"). Les rĂ©fs avec des noms commençant refs/head/ contiennent le nom SHA-1 du commit le plus rĂ©cent (ou "head") d’une branche en dĂ©veloppement. Les noms SHA-1 des Ă©tiquettes intĂ©ressantes sont stockĂ©s sous refs/tags/. Une rĂ©f symbolique nommĂ©e HEAD contient le nom de la branche actuellement extraite.

Le fichier index est initialisĂ© avec une liste de tous les chemins et, pour chaque chemin, un objet blob et un ensemble d’attributs. L’objet blob reprĂ©sente le contenu du fichier Ă  la tĂŞte de la branche actuelle. Les attributs (dernière date de modification, taille, etc.) sont prĂ©levĂ©s sur le fichier correspondant de l’arbre de travail. Les modifications subsĂ©quentes Ă  l’arbre de travail peuvent ĂŞtre trouvĂ©es en comparant ces attributs. L’index peut ĂŞtre mis Ă  jour avec de nouveaux contenus, et de nouveaux commits peuvent ĂŞtre crĂ©Ă©s Ă  partir du contenu stockĂ© dans l’index.

L’index est Ă©galement capable de stocker plusieurs entrĂ©es (appelĂ©es « Ă©tapes ») pour un nom de chemin donnĂ©. Ces Ă©tapes sont utilisĂ©es pour contenir les diffĂ©rentes versions non fusionnĂ©es d’un fichier lorsqu’une fusion est en cours.

SÉCURITÉ

Some configuration options and hook files may cause Git to run arbitrary shell commands. Because configuration and hooks are not copied using git clone, it is generally safe to clone remote repositories with untrusted content, inspect them with git log, and so on.

However, it is not safe to run Git commands in a .git directory (or the working tree that surrounds it) when that .git directory itself comes from an untrusted source. The commands in its config and hooks are executed in the usual way.

By default, Git will refuse to run when the repository is owned by someone other than the user running the command. See the entry for safe.directory in git-config[1]. While this can help protect you in a multi-user environment, note that you can also acquire untrusted repositories that are owned by you (for example, if you extract a zip file or tarball from an untrusted source). In such cases, you’d need to "sanitize" the untrusted repository first.

If you have an untrusted .git directory, you should first clone it with git clone --no-local to obtain a clean copy. Git does restrict the set of options and hooks that will be run by upload-pack, which handles the server side of a clone or fetch, but beware that the surface area for attack against upload-pack is large, so this does carry some risk. The safest thing is to serve the repository as an unprivileged user (either via git-daemon[1], ssh, or using other tools to change user ids). See the discussion in the SECURITY section of git-upload-pack[1].

DOCUMENTATION SUPPLÉMENTAIRE

Voir les références dans la section "description" pour commencer à utiliser Git. Ce qui suit est probablement plus détaillé que nécessaire pour un utilisateur débutant.

Le chapitre Concepts Git du manuel d’utilisateur and gitcore-tutorial[7] fournissent tout deux des introductions Ă  l’architecture sous-jacente de Git.

Voir gitworkflows[7] pour un aperçu des modes de travail recommandés.

Voir aussi les documents de howto pour quelques exemples utiles.

Le fonctionnement interne est documentĂ© dans la documentation d’API de Git.

Les utilisateurs qui migrent depuis CVS peuvent Ă©galement vouloir lire gitcvs-migration[7].

Auteurs

Git a été initialement développé par Linus Torvalds, et est actuellement maintenu par Junio C Hamano. De nombreuses contributions proviennent de la liste de diffusion de Git <git@vger.kernel.org>. https://openhub.net/p/git/contributors/summary vous donne une liste plus complète des contributeurs.

Si vous avez un clone de git.git lui-même, la sortie de git-shortlog[1] et git-blame[1] peut vous montrer les auteurs pour des parties spécifiques du projet.

Signaler des bogues

Signaler des bogues Ă  la liste de diffusion de Git <git@vger.kernel.org> oĂą le dĂ©veloppement et la maintenance sont principalement effectuĂ©s. Vous n’avez pas Ă  ĂŞtre abonnĂ© Ă  la liste pour y envoyer un message. Voir l’archive de la liste Ă  l’adresse https://lore.kernel.org/git pour les prĂ©cĂ©dents rapports sur les bogues et autres dĂ©bats.

Les questions de sécurité pertinentes devraient être divulguées en privé à la liste de diffusion de Sécurité Git <git-security@googlegroups.com>.

GIT

Fait partie de la suite git[1]

TRADUCTION

Cette page de manuel a été traduite par Jean-Noël Avila <jn.avila AT free DOT fr> et les membres du projet git-manpages-l10n. Veuillez signaler toute erreur de traduction par un rapport de bogue sur le site https://github.com/jnavila/git-manpages-l10n .

scroll-to-top