Git
Chapters ▾ 2nd Edition

A1.6 Git dans d’autres environnements - Git dans Powershell

Git dans Powershell

Le terminal de ligne de commande ancestral sous Windows (cmd.exe) n’est pas vraiment capable de fournir une expérience de Git personnalisée, mais si vous utilisez Powershell, vous avez de la chance. Cela marche aussi si vous utilisez PowerShell sous une plateforme non Windows comme Debian. Un paquetage appelé Posh-Git (https://github.com/dahlbyk/posh-git) fournit un système de complétion automatique, ainsi qu’une invite améliorée pour vous aider à rester informé de l’état de votre dépôt. Elle ressemble à ceci :

Powershell avec Posh-git.
Figure 165. Powershell avec Posh-git.

Installation

Prérequis (Windows seulement)

Avant de pouvoir lancer des scripts PowerShell sur votre machine, vous devez définir votre ExecutionPolicy locale à RemoteSigned (en gros tout sauf Undefined et Restricted). Si vous choisissez AllSigned au lieu de RemoteSigned, même les scripts locaux (les vôtres) devront être signés numériquement pour pouvoir être exécutés. Avec RemoteSigned, seuls les scripts ayant le "ZoneIdentifier" défini à Internet (téléchargés depuis le web) devront être signés, pas les autres. Si vous êtes un administrateur et que vous voulez la définir pour tous les utilisateurs de cette machine, utilisez "-Scope LocalMachine". Si vous êtes un utilisateur normal sans les privilèges administrateur, vous pouvez utiliser "-Scope CurrentUser" pour ne la définir que pour vous.

Plus d’informations sur les portées (Scopes) PowerShell : https://docs.microsoft.com/fr-fr/powershell/module/microsoft.powershell.core/about/about_scopes.

Plus d’informations sur la politique d’exécution (ExecutionPolicy) PowerShell : https://docs.microsoft.com/fr-fr/powershell/module/microsoft.powershell.security/set-executionpolicy.

> Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned -Force

Si vous avez au moins PowerShell 4 ou Powershell 5 avec PackageManagement installé, vous pouvez utiliser le gestionnaire de paquets pour obtenir Posh-Git.

Plus d’informations sur PowerShell Gallery : https://docs.microsoft.com/fr-fr/powershell/gallery/overview.

> Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
> Update-Module PowerShellGet -Force
> Install-Module Posh-Git -Scope AllUsers

Si vous voulez installer Posh-Git seulement pour l’utilisateur courant et non globalement, utilisez "-Scope CurrentUser" à la place. Si la deuxième commande échoue avec une erreur comme Module 'PowershellGet' was not installed by using Install-Module, vous devrez d’abord lancer une autre commande :

> Install-Module PowerShellGet -Force -SkipPublisherCheck

Maintenant vous pouvez y retourner et recommencer. Cela arrive parce que les modules qui viennent avec Windows PowerShell sont signés avec un certificat de publication différent.

Mise à jour du terminal PowerShell

Pour inclure les informations git dans le terminal, posh-git doit être importé. Pour faire cela automatiquement, incluez l’instruction d’import dans votre script $profile. Ce script est exécuté chaque fois que vous ouvrez un nouveau terminal PowerShell. Gardez en tête qu’il y a de multiples scripts $profile. Par exemple, un pour le terminal et un autre séparé pour l’environnement de script intégré (ISE, Integrated Scripting Environment).

> New-Item -Name $(Split-Path -Path $profile) -ItemType Directory -Force
> 'Import-Module Posh-Git' | Out-File -Append -Encoding default -FilePath $profile
Depuis les sources

Téléchargez une version Posh-Git depuis https://github.com/dahlbyk/posh-git et décompressez-la dans le dossier WindowsPowerShell. Puis ouvrez un terminal PowerShell en tant qu’administrateur et saisissez ceci :

> cd ~\Documents\WindowsPowerShell\Module\posh-git
> .\install.ps1

Cela ajoutera la bonne ligne à votre fichier profile.ps1 et posh-git sera actif la prochaine fois que vous ouvrirez votre terminal.