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