Comment installer et configurer Git sur Ubuntu 22.04 ?


Installer et configurer Git sur Ubuntu 22.04

Objectif

Git est l'un des systèmes de gestion de versions (VCS) les plus connus au monde. Sa large adoption au cours des dernières années en fait un outil incontournable dans l'univers du développement web.

Dans ce tutoriel, nous allons apprendre à installer et configurer Git sur le système de distribution Linux Ubuntu 22.04.

 

Exigences

Pour suivre ce tutoriel, vous devez disposer de la version 22.04 d'Ubuntu et l'exécuter sur une Instance Compute OVHcloud, par exemple. Quelques connaissances de base sur son fonctionnement sont également nécessaires. Si vous ne disposez pas d'Ubuntu 22.04, suivez ce guide pour utiliser une Instance Compute OVHcloud.

 

Instructions

Dans ce tutoriel, vous commencerez par installer Git. Vous allez ensuite le configurer, puis apprendre à signer vos commits.

Au moment de la rédaction de ce tutoriel, la dernière version LTS de Git est la version 2.36.1.

 

Installation du LTS Git

Pour installer Git sur Ubuntu, le moyen le plus simple est d'utiliser la commande apt-get.
Pour obtenir la dernière version LTS, vous devez ajouter un dépôt :

sudo add-apt-repository ppa:git-core/ppa

Le résultat s'affiche comme ceci :

$ sudo add-apt-repository ppa:git-core/ppa

PPA publishes dbgsym, you may need to include 'main/debug' component
Repository: 'deb https://ppa.launchpadcontent.net/git-core/ppa/ubuntu/ jammy main'
Description:
The most current stable version of Git for Ubuntu.

For release candidates, go to https://launchpad.net/~git-core/+archive/candidate .
More info: https://launchpad.net/~git-core/+archive/ubuntu/ppa
Adding repository.
Press [ENTER] to continue or Ctrl-c to cancel.
Found existing deb entry in /etc/apt/sources.list.d/git-core-ubuntu-ppa-jammy.list
Adding deb entry to /etc/apt/sources.list.d/git-core-ubuntu-ppa-jammy.list
Found existing deb-src entry in /etc/apt/sources.list.d/git-core-ubuntu-ppa-jammy.list
Adding disabled deb-src entry to /etc/apt/sources.list.d/git-core-ubuntu-ppa-jammy.list
Adding key to /etc/apt/trusted.gpg.d/git-core-ubuntu-ppa.gpg with fingerprint E1DD270288B4E6030699E45FA1715D88E1DF1F24
Hit:1 http://nova.clouds.archive.ubuntu.com/ubuntu jammy InRelease
Hit:2 http://nova.clouds.archive.ubuntu.com/ubuntu jammy-updates InRelease                    
Get:3 http://nova.clouds.archive.ubuntu.com/ubuntu jammy-backports InRelease [99.8 kB]                              
Ign:4 https://pkg.jenkins.io/debian-stable binary/ InRelease                                                                                                 
Hit:5 https://pkg.jenkins.io/debian-stable binary/ Release                                                                                     
Hit:6 https://ppa.launchpadcontent.net/git-core/ppa/ubuntu jammy InRelease       
Hit:7 http://security.ubuntu.com/ubuntu jammy-security InRelease                 
Fetched 99.8 kB in 1s (112 kB/s)
Reading package lists... Done

Installez Git avec la commande apt-get :

sudo apt-get update && sudo apt-get -y install git

Le résultat s'affiche comme ceci :

$ sudo apt-get update && sudo apt-get -y install git

Hit:1 http://nova.clouds.archive.ubuntu.com/ubuntu jammy InRelease
Hit:2 http://nova.clouds.archive.ubuntu.com/ubuntu jammy-updates InRelease                                       
Hit:3 http://security.ubuntu.com/ubuntu jammy-security InRelease                                                 
Get:4 http://nova.clouds.archive.ubuntu.com/ubuntu jammy-backports InRelease [99.8 kB]                           
Hit:5 https://ppa.launchpadcontent.net/git-core/ppa/ubuntu jammy InRelease                                       
Ign:6 https://pkg.jenkins.io/debian-stable binary/ InRelease                                                     
Hit:7 https://pkg.jenkins.io/debian-stable binary/ Release
Fetched 99.8 kB in 1s (113 kB/s)
Reading package lists... Done
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  git-man
Suggested packages:
  git-daemon-run | git-daemon-sysvinit git-doc git-email git-gui gitk gitweb git-cvs git-mediawiki git-svn
The following packages will be upgraded:
  git git-man
2 upgraded, 0 newly installed, 0 to remove and 27 not upgraded.
Need to get 7700 kB of archives.
After this operation, 8810 kB of additional disk space will be used.
Get:1 https://ppa.launchpadcontent.net/git-core/ppa/ubuntu jammy/main amd64 git amd64 1:2.36.1-0ppa1~ubuntu22.04.1 [5768 kB]
Get:2 https://ppa.launchpadcontent.net/git-core/ppa/ubuntu jammy/main amd64 git-man all 1:2.36.1-0ppa1~ubuntu22.04.1 [1933 kB]
Fetched 7700 kB in 0s (22.9 MB/s)
(Reading database ... 131441 files and directories currently installed.)
Preparing to unpack .../git_1%3a2.36.1-0ppa1~ubuntu22.04.1_amd64.deb ...
Unpacking git (1:2.36.1-0ppa1~ubuntu22.04.1) over (1:2.34.1-1ubuntu1.2) ...
Preparing to unpack .../git-man_1%3a2.36.1-0ppa1~ubuntu22.04.1_all.deb ...
Unpacking git-man (1:2.36.1-0ppa1~ubuntu22.04.1) over (1:2.34.1-1ubuntu1.2) ...
Setting up git-man (1:2.36.1-0ppa1~ubuntu22.04.1) ...
Setting up git (1:2.36.1-0ppa1~ubuntu22.04.1) ...
Processing triggers for man-db (2.10.2-1) ...
Scanning processes...                                                                                             
Scanning candidates...                                                                                            
Scanning linux images...                                                                                          

Restarting services...
 systemctl restart irqbalance.service jenkins.service packagekit.service polkit.service postgresql@14-main.service qemu-guest-agent.service ssh.service udisks2.service
Service restarts being deferred:
 systemctl restart ModemManager.service
 systemctl restart networkd-dispatcher.service
 systemctl restart systemd-logind.service
 systemctl restart unattended-upgrades.service

No containers need to be restarted.

No user sessions are running outdated binaries.

No VM guests are running outdated hypervisor (qemu) binaries on this host.

Ensuite, vous pouvez tester votre nouvelle installation et afficher la version de Git :

git --version

Le résultat s'affiche comme ceci :

$ git --version

git version 2.36.1

 

Configuration de base : nom et adresse e-mail

Une fois Git installé, il est conseillé de configurer certains éléments, en particulier la partie identification qui sera « liée » lors des commits. Pour que cette configuration se réplique dans chaque dépôt, il est possible de procéder de manière globale grâce à un fichier root .gitconfig détenu par l'utilisateur d'origine.

Vous pouvez créer ce fichier manuellement ou en utilisant l'option config de la commande git :

git config --global user.name "Firstname Lastname" git config --global user.email "firstname.lastname@mail.com"

Ensuite, vous pouvez afficher votre fichier .gitconfig dans votre dépôt d'origine :

cat .gitconfig

Le résultat s'affiche comme ceci :

$ cat .gitconfig
 
[user]
	name = Firstname Lastname
	email = firstname.lastname@mail.com

 

Configuration avancée : commits signés

Il est fortement recommandé de signer vos commits. La raison principale est de s'assurer que vous êtes bien le propriétaire des commits et qu'il ne s'agit pas d'une autre personne se faisant passer pour vous. Comme nous l'avons constaté précédemment, le nom et l'adresse e-mail sont lisibles par tous les utilisateurs des dépôts à distance, comme GitHub ou GitLab, par exemple. N'importe qui peut modifier ces paramètres et se faire passer pour vous.

Toutes les commandes utilisent le logiciel gpg, déjà installé sur Ubuntu.

Tout d'abord, il vous faut générer une clé :

gpg --generate-key

Le résultat s'affiche comme ceci :

$ gpg --generate-key

gpg (GnuPG) 2.2.27; Copyright (C) 2021 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Note: Use "gpg --full-generate-key" for a full featured key generation dialog.

GnuPG needs to construct a user ID to identify your key.

Real name: Firstname Lastname
Email address: firstname.lastname@email.com
You selected this USER-ID:
    "Firstname Lastname "

Change (N)ame, (E)mail, or (O)kay/(Q)uit? O
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: key BECE6D85FDA1B6C8 marked as ultimately trusted
gpg: directory '/home/ubuntu/.gnupg/openpgp-revocs.d' created
gpg: revocation certificate stored as '/home/ubuntu/.gnupg/openpgp-revocs.d/18E345A3F27325A8B4816875BECE6D85FDA1B6C8.rev'
public and secret key created and signed.

pub   rsa3072 2022-06-17 [SC] 
      18E345A3F27325A8B4816875BECE6D85FDA1B6C8
uid                      Firstname Lastname 
sub   rsa3072 2022-06-17 [E] 

Ensuite, vous devez vérifier la clé qui vient d'être créée :

gpg --list-secret-keys --keyid-format=long

Le résultat s'affiche comme ceci :

$ gpg --list-secret-keys --keyid-format=long

gpg: checking the trustdb
gpg: marginals needed: 3  completes needed: 1  trust model: pgp
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: next trustdb check due at 2024-06-16
/home/ubuntu/.gnupg/pubring.kbx
-------------------------------
sec   rsa3072/ABCDEFGHIJKLMNOP 2022-06-17 [SC] 
      SSSSSSSSSSSSSSSSSSSSSSSSABCDEFGHIJKLMNOP
uid                 [ultimate] Firstname Lastname 
ssb   rsa3072/ZZZZZZZZZZZZZZZZ 2022-06-17 [E] 

Ajoutez la clé à votre configuration Git dans le fichier .gitconfig de votre dépôt d'origine :

git config --global commit.gpgsign true git config --global gpg.program gpg git config --global user.signingkey ABCDEFGHIJKLMNOP

Enfin, vous devez extraire et copier votre clé vers votre fournisseur Git à distance (GitLab, GitHub, ButBucket, etc.) :

gpg --armor --export ABCDEFGHIJKLMNOP

Le résultat s'affiche comme ceci :

$ gpg --armor --export ABCDEFGHIJKLMNOP

-----BEGIN PGP PUBLIC KEY BLOCK-----

TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4g
SW4gYmliZW5kdW0gaGVuZHJlcml0IG5pYmggaWQgZ3JhdmlkYS4gUGhhc2VsbHVzIG5lYyBhbGlx
dWFtIG1hc3NhLCBmcmluZ2lsbGEgc29sbGljaXR1ZGluIG1ldHVzLiBQaGFzZWxsdXMgc2l0IGFt
ZXQgdGluY2lkdW50IG9yY2kuIERvbmVjIHF1aXMgdml2ZXJyYSBsaWd1bGEuIE5hbSBwaGFyZXRy
YSBlbGl0IGV4LCBzaXQgYW1ldCB0aW5jaWR1bnQgbmliaCB0ZW1wb3IgdmVsLiBOdWxsYSBzZW1w
ZXIgcGxhY2VyYXQgZGlhbSBzaXQgYW1ldCB2YXJpdXMuIFN1c3BlbmRpc3NlIHRyaXN0aXF1ZSBl
Z2V0IGxvcmVtIGV1IHBsYWNlcmF0LiBOdW5jIGlhY3VsaXMgbnVuYyBldCBuZXF1ZSBlZmZpY2l0
dXIgZnJpbmdpbGxhLiBWZXN0aWJ1bHVtIG1vbGxpcyBldWlzbW9kIG1hZ25hIHNpdCBhbWV0IGlu
dGVyZHVtLiBQZWxsZW50ZXNxdWUgaW1wZXJkaWV0IGxvcmVtIG51bGxhbS4g

-----END PGP PUBLIC KEY BLOCK-----

Félicitations, vous venez d'installer et de configurer Git sur Ubuntu 22.04 !

 

Aller plus loin

Consultez les offres d'instance Public Cloud chez OVHcloud.