Git sous Linux

Git est un logiciel de gestion de versions décentralisé, c'est un logiciel libre créé par Linus Torvalds, auteur du noyau Linux. il est utilisable sous distributions Linux, sous Windows ou Mac OS X.


A - Créer un dépôt

Cela permet d'héberger, d'échanger et de gérer du code pour des projets de logiciels.
Il existe de nombreuses possibilités pour avoir un dépôt , ci-dessous quelques exemples :

- BitBucket : Propose de faire des dépôts privé gratuit, nombre illimité de dépôts publics/privés. Gratuit pour 5 utilisateurs, parrainé par Atlassian

- Gitlab : un web-service gratuit qui utilise Git, mais c'est aussi un logiciel libre de forge
(Gitorious : [le 04/03/2015] Gitlab achète Gitorious)

la forge git.framasoft.org est désormais ouverte à tous. [le 16/03/2015]
permet la création de 42 dépôts git maximum par compte (utilise GitLab)

- Github : un web-service gratuit racheté en juin 2018 par Microsoft. Nombre illimité de dépôts publics et un nombre illimité de collaborateurs publics, le code de Github est propriétaire

- Repo.or.cz : Fournit juste un hébergement git. C'est tout
La taille du dépôt ne doit pas dépasser 400 Mo , possibilité de faire du "mirror mode".

- Savannah : Héberge les logiciels libres qui fonctionnent sur des systèmes libres et sans dépendance propriétaire.


B - Installer  Git git

Comme indiquer sur la page Installation de Git (pour information)

Dans le  gestionnaire de paquets rechercher :  git
Ou en ligne de commande 
~$ sudo apt-get install git
git (version 1:2.20.1-2+deb10u1) sera installé
git-man (version 1:2.20.1-2+deb10u1) sera installé
liberror-perl (version 0.17027-2) sera installé
openssh-client (version 1:7.9p1-10+deb10u2) sera installé

Après l'installation de Git
il faut renseigner son nom et son adresse e-mail
en ligne de commande
~$ git config --global user.name "mon_nom"
~$ git config --global user.email "mon_mail@mail.com

Pour vérfier les informations en ligne de commande :
~$ git config --global user.name
Affichera mon_nom
~$ git config --global user.email
Affichera
mon_mail@mail.comom

C - Configurer le SSH

A si besoin installer openssh-client (normalement il a été installé au départ avec git ... )

si vous avez déjà une clef SSH vous devez avoir un dossier /home/nomuser/.ssh dans votre home

B Ensuite génération de la clef SSH comme indiqué sur Generating SSH Keys  ou sur  Génération des clés publiques SSH

En ligne de commande
~/.ssh$ ssh-keygen -t rsa -b 4096 -C "mon_mail@mail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/nomuser/.ssh/id_rsa):
Enter passphrase (laisser vide si pas de passphrase):
Enter same passphrase again:
Your identification has been saved in /home/nomuser/.ssh/id_rsa.
Your public key has been saved in /home/nomuser/.ssh/id_rsa.pub.
The key fingerprint is:
fe:xx:xx:af:xx:93:xx:c5:xx:ea:bc:xx:xx:c8:xx:2d mon_mail@mail.com
The key's randomart image is:
+--[ RSA 2048]----+
|               o |
.....
|          .o  .o |
+-----------------+

il sera créer une clé SSH Vous aurez donc une clef privée id_rsa et une clef publique id_rsa.pub

Ajout de votre clé SSH à l'agent ssh
- Démarrez l'agent ssh
~$ eval "$(ssh-agent -s)"
Affichera
Agent pid 4828
Ajoutez votre clé privée SSH à l'agent ssh
~$ ssh-add ~/.ssh/id_rsa
affichera
Identity added: /home/xxxx/.ssh/id_rsa (/home/linux/.ssh/id_rsa)



B -  Aller sur votre dépôt et connectez vous

exemple sur Github  
new SSH key to your GitHub
exemple sur Framasoft / Gitlab
new SSH key to your GitHub+
          

Puis

En ligne de commande
~$ xclip -sel clip < ~/.ssh/id_rsa.pub
Pour copier le contenu du fichier id_rsa.pub dans le presse papier

et aller dans github SSH and GPG keys puis GPG keys / Add new
Vous verrez alors l'empreinte de votre clef.
Gitub : Vous recevrez en plus un message avec l'empreinte (fingerprint) de votre clef

C'est terminé

C - Il reste à vérifier la connexion SSH


En ligne de commande 
~$ ssh -T git@github.com
Hi Xxxxxx! You've successfully authenticated ... .
ou
~$ ssh -T git@framagit.org 
...
Voila, vous pourrez alors vous connecter en SSH pour les opérations de transfert


Quelques choix possibles pour interfaces graphique pour une utilisation de Git GUI Clients et 5 interfaces

Pour information git - petit guide

Document  http://jc.etiemble.free.fr/abc/ JCE - version 08/04/2020-0 CC_licence