Description
GIT est un “gestionnaire de contenu de répertoire” conçu pour gérer des projets massifs avec rapidité et efficacité,
GIT entre dans la catégorie des outils de gestion de code source distribués, semblable à par exemple GNU Arch ou Monotone (ou, dans le monde commercial, BitKeeper). Chaque répertoire de travail GIT est un référentiel à part entière avec des capacités de suivi de révision complètes, ne dépendant pas de l’accès réseau à un serveur central.
Installation
Installez
le
paquet git
.
Pour pouvoir utiliser la fonction git send-email
, et utiliser smtp
,
tls
, il vous faut installer aussi les packages suivants :
p5-Net-SMTP-SSL
p5-Authen-SASL
Configuration
Le fichier de configuration : ~/.gitconfig
Exemple minimaliste :
[user]
name = identifiant
email = email@domain.com
Signature
Depuis la version 1.7.9 de Git, il est possible de signer les commits, ce qui permet d’assurer que vous êtes bien l’auteur de ceux-ci.
Pour signer vos commits, il est nécessaire d’avoir créé dans un premier temps une clé GPG - ce mémo ne vous montrera pas comment faire… L’outil GPG2 est fourni de base dans OpenBSD. Néanmoins, il vous faudra créer un lien symbolique pour lui faire croire qu’il utilise GPG, car Git semble ne pas être capable de comprendre !
Vous devrez ensuite modifier votre fichier de configuration afin de rajouter
l’option signingkey
dans la partie de configuration [user], tel que :
[user]
name = identifiant
email = email@domain.com
signingkey = votre_id_gpg
La commande pour signer :
- un commit :
git commit -a -S -m 'un ou plusieurs longs commentaires'
- un tag :
git tag -s v1.5 -m 'mon tag signé'
Pour en connaître plus sur le fonctionnement de git et le fait de signer, veuillez lire la doc officielle…
Dépannage
error: cannot run gpg: No such file or directory
Vous avez le message d’erreur suivant dans son ensemble :
error: cannot run gpg: No such file or directory
error: impossible de lancer gpg.
fatal: échec de l'écriture de l'objet commit
L’outil GPG n’est pas trouvé ; normal sous OpenBSD, il n’existe pas. L’astuce est de lier GPG au binaire GPG2 :
# ln -sf /usr/local/bin/gpg2 /usr/local/bin/gpg
gpg: échec de la signature : Inappropriate ioctl for device
Le message d’erreur est le suivant :
gpg: échec de la signature : Inappropriate ioctl for device
gpg: signing failed: Inappropriate ioctl for device
error: gpg n'a pas pu signer les données
fatal: échec de l'écriture de l'objet commit
Il vous manque les paquets suivants : pinentry
pinentry-gtk2
ou
pinentry-gtk3
- veillez à les installer
!
Pour info, il semble que ce soit lié au bogue 2680 relatif à la version 2.1x de GPG.
Documentation
N’oubliez pas de lire le fichier /usr/local/share/doc/pkg-readmes/git
! ;-)
⇒ Git :
- La documentation de référence : https://git-scm.com/book/fr/v2
- Un petit guide git pour démarrer
⇒ GPG :
-
Comment bien configuré GPG pour l’utiliser correctement : GPG : Du bon usage sécurisé
-
Un guide des bonnes pratiques pour créer ses clés GPG …
Historique
J’ai écrit historiquement cette documentation sur le wiki de la communauté “OpenBSD Pour Tous”.