ent.
Le rôle de Git est de suivre l'évolution du code source d'un projet. Il conserve la trace de l'ens... à une révision précise.
===== Installer =====
<code bash>
$ sudo apt-get install git
</code>
==== Configuration globale ====
Les informations définies da... s valeurs.
Pour lister les paramètres globaux:
<code bash>
$ git config --global -l
</code>
C'est par
et marque d'une astérisque la branche courante:
<code bash>
# lister les branches
git branch
# Affiche...
# Lister toutes les branches
git branch --all
</code>
===== Créer une branche =====
Généralement on souhaite créer la branche et basculer dessus :
<code bash>
git checkout -b issue33
# Equivalent
git switch --create issue33
</code>
===== Branches locales et distantes =====
Lors
tion **-s** résume le statut de chaque fichier:
<code bash>
$ git status -s
?? readme.txt
?? src/
</code>
Les points d'interrogations indique que le réperto... ns l'index implique l'ajout de tout son contenu:
<code bash>
$ git add src/
$ git st
A src/A.c
A src/B.c
A src/C.c
?? readme.tx
</code>
Ici, le 'A' en préfixe indique que les fichiers
r pour tous les dépôts de l’utilisateur courant:
<code bash>
git config --global commit.gpgsign true
</code>
===== Signer un commit =====
Si le client git ... ement quel commit signer via l'argument **-S**:
<code bash>
git commit -S -m "Modifications apportées"
</code>
===== Signer un tag =====
Les tags peuvent éga
ombreux. Les tags sont affichés par ordre alpha
<code bash>
$ git tag
</code>
<code bash>
$ git tag -l v1.0.*
</code>
==== Créer ====
Pour créer un tag simple saisir le nom du nouveau t
identifié par son SHA (pour l'exemple 0cb5c64):
<code bash>
git reset --hard 0cb5c64
</code>
Le blob précédemment pointé par le HEAD n'est alors plus référe... rder le dépôt avant toute modification.
</note>
<code bash>
git reflog expire --expire-unreachable=now --all
git gc --prune=now
</code>
===== Exemple =====
Dans l'exemple ci-dessous
ur lister la configuration actuellement définie:
<code bash>
git config --list
</code>
===== Portée des définitions =====
Les déclarations des variables de ... t la valeur définie localement qui est affichée:
<code bash>
$ git config user.name
Toto
$ git config --global user.name
Yoann BEZILLE
</code>
Dans l'exemple ci dessus, pour le dépot courant
t, la sortie de la commande git diff l'affiche:
<code bash>
$ git diff
diff --git a/src/init.c b/src/in... Modification apres insertion dans l'index
}
</code>
Dans ce cas, la version présente dans l'espace ... l'index avec la version de l'espace de travail:
<code bash>
$git add -u
# ou équivalent
$ git add --update
</code>
Après mise à jour de l'index, la commande git d
ement après validation de la commande suivante:
<code bash>
$ git init --bare mon-projet.git
</code>
===== Clonage =====
pour pouvoir accéder au dépôt l'ut... oner le dépot du serveur sur la machine de dev.
<code bash>
$ git clone user@server:port/path/to/repo
</code>
===== Import initial =====
Configurer les préf
d, green, yellow, blue, magenta, cyan et white.
<code bash>
</code>
Pour les terminaux supportant les couleurs 24 bits les couleurs peuvent être décrites p... les valeurs hexadécimales des composantes RVB:
<code bash>
# Utilise un gris %C(#808080) pour le forma... %d - %s %C(#808080)[%ad] %Creset" --graph --all
</code>
{{git_log_graph_02.png}}
Ci dessous un exempl
ts formats. Pour lister les formats disponibles:
<code>
$ git archive --list
</code>
Ceci permet de distribuer simplement le projet dans une révision partic... mple celle marquée du tag **1.0**. Dans ce cas:
<code>
$ git archive --format zip -9 --prefix monProjet-1.0/ 1.0 > /chemin/fichier.zip
</code>
* Pour l'argument **%%--%%prefix**, bien term
et refaire les modifications sur cette branche.
<code bash>
# git branch m'indique que je suis bien sur... a été modifié
$ git status -s
M doc/cdc.adoc
</code>
Pour éviter d'avoir à annuler et recréer mes mo... l'index avec la commande **git reset**.
</note>
<code bash>
# Les modification sont sauvegardées dans u... l (applique le dernier stash)
$ git stash apply
</code>
Les modifications sont placées sur notre branc
fusionnées.
Se placer sur la branche souhaitée
<code bash>
$ git checkout master
</code>
Maintenant le HEAD est positionné sur master. Pour ne lister que les branches déjà fusionnées à master:
<code bash>
$ git branch --merged
experimental
* master
</code>
Dans l'exemple ci dessus, l'astérisque marque b