チャプター ▾ 第2版

A1.8 付録 A: その他の環境でのGit - PowerShellでのGit

PowerShellでのGit

Windowsの従来のコマンドラインターミナル (cmd.exe) は、カスタマイズされたGitエクスペリエンスにはあまり対応していませんが、PowerShellを使用している場合は幸運です。これは、LinuxまたはmacOSでPowerShell Coreを実行している場合にも機能します。 posh-git (https://github.com/dahlbyk/posh-git) と呼ばれるパッケージは、強力なタブ補完機能と、リポジトリの状態を把握するのに役立つ拡張プロンプトを提供します。これは次のようになります。

PowerShell with Posh-git
図 187. Posh-gitを使用したPowerShell

インストール

前提条件 (Windowsのみ)

マシンでPowerShellスクリプトを実行できるようにするには、ローカルのExecutionPolicyRemoteSignedに設定する必要があります (基本的に、UndefinedRestrictedを除くすべて)。 RemoteSignedの代わりにAllSignedを選択した場合、ローカルスクリプト (あなた自身のもの) も実行するためにデジタル署名する必要があります。 RemoteSignedでは、ZoneIdentifierInternetに設定されている (ウェブからダウンロードされた) スクリプトのみが署名する必要があり、それ以外は署名する必要はありません。管理者で、そのマシンのすべてのユーザーに対して設定したい場合は、-Scope LocalMachineを使用します。管理者権限のない通常のユーザーの場合は、-Scope CurrentUserを使用して自分のみに設定できます。

すべてのユーザーに対してExecutionPolicyの値をRemoteSignedに設定するには、次のコマンドを使用します。

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

PowerShell 5以上、またはPackageManagementがインストールされたPowerShell 4をお持ちの場合は、パッケージマネージャーを使用してposh-gitをインストールできます。

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

すべてのユーザーに対してposh-gitをインストールしたい場合は、代わりに-Scope AllUsersを使用し、昇格されたPowerShellコンソールからコマンドを実行します。 2番目のコマンドがModule 'PowerShellGet' was not installed by using Install-Moduleのようなエラーで失敗した場合は、まず別のコマンドを実行する必要があります。

> Install-Module PowerShellGet -Force -SkipPublisherCheck

その後、戻って再試行できます。これは、Windows PowerShellに付属しているモジュールが異なる公開証明書で署名されているために発生します。

PowerShellプロンプトの更新

Git情報をプロンプトに含めるには、posh-gitモジュールをインポートする必要があります。PowerShellが起動するたびにposh-gitをインポートするには、Add-PoshGitToProfileコマンドを実行します。これにより、インポートステートメントが$profileスクリプトに追加されます。このスクリプトは、新しいPowerShellコンソールを開くたびに実行されます。複数の$profileスクリプトがあることに注意してください。たとえば、コンソール用とISE用で別々のものがあります。

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

ソースから

https://github.com/dahlbyk/posh-git/releases からposh-gitリリースをダウンロードして解凍するだけです。その後、posh-git.psd1ファイルへのフルパスを使用してモジュールをインポートします。

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

これにより、profile.ps1ファイルに適切な行が追加され、次回PowerShellを開いたときにposh-gitがアクティブになります。

プロンプトに表示されるGitステータス概要情報の詳細については、https://github.com/dahlbyk/posh-git/blob/master/README.md#git-status-summary-information を参照してください。 posh-gitプロンプトのカスタマイズ方法の詳細については、https://github.com/dahlbyk/posh-git/blob/master/README.md#customization-variables を参照してください。

scroll-to-top