Git
Chapters ▾ 2nd Edition

A1.8 Annexe A: 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 163. 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.

Pour régler la valeur de ExecutionPolicy à RemoteSigned pour tous les utilisateurs, utilisez la commande suivante :

> 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/en-us/powershell/scripting/gallery/overview.

> Install-Module posh-git -Scope CurrentUser -Force
> Install-Module posh-git -Scope CurrentUser -AllowPrerelease -Force # Newer beta version with PowerShell Core support

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 que posh-git soit importé à chaque démarrage de PowerShell, exécutez la commande `Add-PoshGitToProfile qui ajoute la commande 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).

> Import-Module posh-git
> Add-PoshGitToProfile -AllHosts

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 importez le module en utilisant le chemin complet vers le fichier posh-git.psd1 :

> Import-Module <path-to-uncompress-folder>\src\posh-git.psd1
> Add-PoshGitToProfile -AllHosts

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

Pour une description de l’information de résumé de l’état Git dans l’invite, reportez-vous à https://github.com/dahlbyk/posh-git/blob/master/README.md#git-status-summary-information. Pour de plus amples détails sur la personnalisation du votre invite posh-git, reportez-vous à https://github.com/dahlbyk/posh-git/blob/master/README.md#customization-variables.

scroll-to-top