Partager via


Prise en main de Git sur le sous-système Windows pour Linux

Git est le système de contrôle de version le plus couramment utilisé. Avec Git, vous pouvez suivre les modifications que vous apportez aux fichiers, de sorte que vous avez un enregistrement de ce qui a été fait et avoir la possibilité de revenir aux versions antérieures des fichiers si nécessaire. Git facilite également la collaboration, permettant aux modifications effectuées par plusieurs personnes d'être fusionnées en une seule source.

Git peut être installé sur Windows AND sur WSL

Une considération importante : lorsque vous activez WSL et installez une distribution Linux, vous installez un nouveau système de fichiers, séparé 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 d’accueil avec la commande cd ~, puis entrez la commande explorer.exe ., l’Explorateur de fichiers Windows s’ouvre et m’affiche le chemin d’accès au répertoire de cette distribution.

Distribution de Linux Chemin d’accès Windows au dossier d’accueil
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 souhaitez 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 en tant que lecteur monté.

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

Affichage des versions Git par distribution

Installation de Git

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

Pour installer Git, consultez le site Git Download pour Linux. Chaque distribution Linux a son propre gestionnaire de package et 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 courrier électronique avec cette commande (en remplaçant «youremail@domain.com» par l’e-mail que vous préférez) :

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

Conseil

Si vous n’avez pas encore de compte GitHub, vous pouvez vous inscrire à un compte GitHub. Si vous n’avez jamais travaillé avec Git auparavant, Guides GitHub pouvez vous aider à commencer. 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 du Gestionnaire d’informations d’identification Git

Gestionnaire d’identifiants Git (GCM) est un assistant Git sécurisé basé sur .NET qui peut être utilisé avec WSL1 et WSL2. Il permet la prise en charge de l’authentification multifacteur pour les dépôts GitHub, Azure DevOps, Azure DevOps Server et Bitbucket.

GCM s’intègre dans le flux d’authentification pour les services comme 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 manière 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 authentifier à nouveau. 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 de wsl.exe requis 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 des 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 demandé de sélectionner un assistant pour les identifiants, avec GCM défini comme valeur par défaut.

Si vous n’avez pas de raison d’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 de stockage d’authentification ou d’informations d’identification du système d’exploitation Windows hôte. Consultez le référentiel GCM pour obtenir des instructions sur la façon de configurer WSL sans Git pour Windows.

Pour configurer GCM à utiliser avec une distribution WSL, ouvrez votre distribution et entrez cette commande :

Si GIT est installé en version >= 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 assistance d’informations d’identification pour une installation git WSL signifie que toute configuration définie dans WSL Git n’est pas respectée par GCM (par défaut). Cela est dû au fait que GCM s’exécute en tant qu’application Windows et utilise donc Git pour l’installation de Windows pour interroger la configuration. Cela signifie que les paramètres de proxy pour GCM doivent être définis dans Git pour Windows et WSL Git, car ils sont stockés dans différents fichiers (%USERPROFILE%\.gitconfig et \\wsl$\distro\home\$USER\.gitconfig). Vous pouvez configurer WSL afin que GCM utilise la configuration Git WSL, mais cela signifie que les paramètres de proxy sont uniques à l’installation de WSL spécifique et non partagés avec d’autres personnes ou 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 disposez déjà d’informations d’identification mises en cache pour un hôte, elle y accède à partir du gestionnaire d’informations d’identification. Si ce n’est pas le cas, vous recevrez 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’utilisation. Par exemple, voici modèle gitignore par défaut de GitHub pour un projet Node.js.

Si vous choisissez de créer un dépôt à l’aide du site web GitHub, il existe des cases à cocher disponibles pour initialiser votre dépôt avec un fichier README, un fichier .gitignore configuré pour votre type de projet spécifique et des options pour ajouter une licence si vous en avez 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 de Git dans 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 terminaisons de ligne cohérentes.

Étant donné que Windows et Linux utilisent différentes terminaisons de ligne par défaut, Git peut signaler un grand nombre de fichiers modifiés qui n’ont aucune différence en dehors de leurs terminaisons de ligne. Pour éviter ce problème, vous pouvez désactiver la conversion de fin 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 additionnelles