Démarrer avec Git sur le sous-système Windows pour Linux

Git est le système de contrôle de version le plus utilisé. Avec Git, vous pouvez suivre les modifications que vous apportez aux fichiers, afin de disposer d’un enregistrement de ce qui a été fait et de pouvoir revenir à des versions antérieures des fichiers si nécessaire. Git facilite également la collaboration, ce qui permet de fusionner les modifications apportées par plusieurs personnes dans une seule source.

Git peut être installé sur Windows ET sur WSL

Une considération importante : lorsque vous activez WSL et installez une distribution Linux, vous installez un nouveau système de fichiers, distinct du lecteur C:\ NTFS Windows sur votre ordinateur. Dans Linux, les lecteurs ne sont pas indiqués par des lettres. Ils sont indiqués par des points de montage. La racine de votre système de fichiers / est le point de montage de votre partition racine, ou dossier, dans le cas de WSL. Tout ce qui se trouve sous / est le même lecteur. Par exemple, sur mon ordinateur portable, j’ai installé deux versions d’Ubuntu (20.04 et 18.04), ainsi que Debian. Si j’ouvre ces distributions, sélectionnez le répertoire de base avec la commande cd ~, puis entrez la commande explorer.exe ., l’Explorateur de fichiers Windows s’ouvre et me présente le chemin du répertoire pour cette distribution.

Distribution Linux Chemin d’accès Windows pour accéder au dossier de base
Ubuntu 20.04 \\wsl$\Ubuntu-20.04\home\username
Ubuntu 18.04 \\wsl$\Ubuntu-18.04\home\username
Debian \\wsl$\Debian\home\username
Windows PowerShell C:\Users\username

Conseil

Si vous cherchez à accéder au répertoire de fichiers Windows à partir de votre ligne de commande de distribution WSL, au lieu de C:\Users\username, le répertoire est accessible à l’aide de /mnt/c/Users/username, car la distribution Linux affiche votre système de fichiers Windows comme un lecteur monté.

Vous devez installer Git sur chaque système de fichiers avec lequel vous envisagez de l’utiliser.

Showing Git versions by distro

Installation de Git

Git est déjà installé avec la plupart des distributions de sous-système Windows pour Linux. Toutefois, vous pouvez effectuer une mise à jour vers la dernière version. Vous devrez également configurer votre fichier de configuration Git.

Pour installer Git, consultez le site Téléchargement de Git pour Linux. Chaque distribution de Linux possède son propre gestionnaire de package et sa propre commande d’installation.

Pour la dernière version stable de Git dans Ubuntu/Debian, entrez la commande :

sudo apt-get install git

Remarque

Vous pouvez également installer Git pour Windows si ce n’est déjà fait.

Configuration du fichier de configuration Git

Pour configurer votre fichier de configuration Git, ouvrez une ligne de commande pour la distribution dans laquelle vous travaillez et définissez votre nom avec cette commande (en remplaçant « Votre nom » par votre nom d’utilisateur préféré) :

git config --global user.name "Your Name"

Définissez votre adresse électronique avec cette commande (en remplaçant « youremail@domain.com » par l’adresse de votre choix) :

git config --global user.email "youremail@domain.com"

Conseil

Si vous n’avez pas encore de compte GitHub, vous pouvez vous inscrire pour en obtenir un sur GitHub. Si vous n’avez jamais travaillé avec Git, les guides GitHub peuvent vous aider à démarrer. Si vous avez besoin de modifier votre configuration Git, vous pouvez le faire avec un éditeur de texte intégré tel que nano : nano ~/.gitconfig.

Nous vous recommandons de sécuriser votre compte avec l’authentification à deux facteurs (2FA).

Configuration de Git Credential Manager

Git Credential Manager (GCM) est une application auxiliaire d’informations d’identification Git sécurisée basée sur .NET qui peut être utilisée avec WSL1 et WSL2. Elle permet la prise en charge de l’authentification multifacteur pour les référentiels GitHub, Azure DevOps, Azure DevOps Server et Bitbucket.

GCM s’intègre au flux d’authentification des services tels que GitHub et, une fois que vous êtes authentifié auprès de votre fournisseur d’hébergement, demande un nouveau jeton d’authentification. Il stocke ensuite le jeton de façon sécurisée dans le gestionnaire d’informations d’identification Windows. Après la première fois, vous pouvez utiliser Git pour communiquer avec votre fournisseur d’hébergement sans avoir à vous réauthentifier. Il accède simplement au jeton dans le gestionnaire d’informations d’identification Windows.

Pour utiliser GCM avec WSL, vous devez être sur Windows 10 version 1903 ou ultérieure. Il s’agit de la première version de Windows qui inclut l’outil requis wsl.exe que GCM utilise pour interagir avec Git dans vos distributions WSL.

Il est recommandé d’installer la dernière version de Git pour Windows afin de partager les paramètres et les informations d’identification entre WSL et l’hôte Windows. Git Credential Manager est inclus avec Git pour Windows et la dernière version est incluse dans chaque nouvelle version de Git pour Windows. Pendant l’installation, vous serez invité à sélectionner une application auxiliaire d’informations d’identification, avec GCM défini comme valeur par défaut.

Si vous avez une raison de ne pas installer Git pour Windows, vous pouvez installer GCM en tant qu’application Linux directement dans votre distribution WSL, mais notez que cela signifie que GCM s’exécute en tant qu’application Linux et ne peut pas utiliser les fonctionnalités d’authentification ou de stockage des informations d’identification du système d’exploitation Windows hôte. Consultez le référentiel GCM pour obtenir des instructions sur la configuration de WSL sans Git pour Windows.

Pour configurer GCM en vue de l’utiliser avec une distribution WSL, ouvrez votre distribution et entrez cette commande :

Si la version de Git installée est >= v2.39.0

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager.exe"

sinon, si la version de Git installée est >= v2.36.1

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/libexec/git-core/git-credential-manager.exe"

sinon, si la version est < v2.36.1, entrez cette commande :

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager-core.exe"

Remarque

L’utilisation de GCM comme application auxiliaire d’informations d’identification pour une installation WSL Git signifie que toute configuration définie dans WSL Git n’est PAS respectée par GCM (par défaut). En effet, GCM s’exécute en tant qu’application Windows et utilise donc l’installation de Git pour Windows pour interroger la configuration. Cela signifie que les paramètres de proxy pour GCM doivent être définis dans Git pour Windows ainsi que dans WSL Git, car ils sont stockés dans différents fichiers (%USERPROFILE%\.gitconfig et \\wsl$\distro\home\$USER\.gitconfig). Vous pouvez configurer WSL de sorte que GCM utilise la configuration WSL Git, mais cela signifie que les paramètres de proxy seront uniques à l’installation WSL et ne seront pas partagés avec d’autres personnes ni l’hôte Windows.

Git avec SSH

Git Credential Manager fonctionne uniquement avec les référentiels distants HTTP(S). Vous pouvez toujours utiliser Git avec SSH :

Configuration supplémentaire pour Azure

Si vous envisagez d’utiliser Azure Repos ou Azure DevOps, une configuration supplémentaire est requise :

git config --global credential.https://dev.azure.com.useHttpPath true

À présent, toute opération Git que vous effectuez dans votre distribution WSL utilise GCM. Si vous avez déjà mis en cache les informations d’identification d’un hôte, celui-ci y accède à partir du gestionnaire d’informations d’identification. Si ce n’est pas le cas, vous recevez une réponse de boîte de dialogue demandant vos informations d’identification, même si vous êtes dans une console Linux.

Conseil

Si vous utilisez une clé GPG pour la sécurité de la signature de code, vous devrez peut-être associer votre clé GPG à votre adresse e-mail GitHub.

Ajout d’un fichier Git Ignore

Nous vous recommandons d’ajouter un fichier .gitignore à vos projets. GitHub offre une collection de modèles .gitignore utiles avec les configurations de fichiers .gitignore recommandées, organisées en fonction de votre cas d’usage. Par exemple, voici le modèle gitignore par défaut de GitHub pour un projet Node.js.

Si vous choisissez de créer un référentiel à l’aide du site web GitHub, des cases à cocher sont disponibles pour initialiser votre référentiel à l’aide d’un fichier README, d’un fichier .gitignore configuré pour votre type de projet spécifique et d’options permettant d’ajouter une licence au besoin.

Git et VS Code

Visual Studio Code est fourni avec la prise en charge intégrée de Git, y compris un onglet de contrôle de code source qui affiche vos modifications et gère une variété de commandes Git pour vous. En savoir plus sur la prise en charge Git de VS Code.

Fins de ligne Git

Si vous utilisez le même dossier de référentiel entre Windows, WSL ou un conteneur, veillez à configurer des fins de ligne cohérentes.

Étant donné que Windows et Linux utilisent des fins de ligne par défaut différentes, Git peut signaler un grand nombre de fichiers modifiés qui n’ont aucune différence hormis leurs fins de ligne. Pour éviter cela, vous pouvez désactiver la conversion des fins de ligne à l’aide d’un fichier .gitattributes ou globalement côté Windows. Consultez ce document VS Code sur la résolution des problèmes de fin de ligne Git.

Ressources supplémentaires