Стандартный терминал командной строки Windows (cmd.exe
), на самом деле, не предназначен для специализированного использования Git, но если вы используете PowerShell, то это меняет дело.
Это также применимо, если вы используете PowerShell Core на Linux или macOS.
Пакет Posh-Git (https://github.com/dahlbyk/posh-git) предоставляет мощные средства завершения команд, а также расширенные подсказки, что поможет вам поддерживать состояние вашего репозитория на высоком уровне.
Выглядит это примерно так:
Для запуска PowerShell скриптов, вам необходимо установить значение локальной политики ExecutionPolicy
в значение RemoteSigned
(вообще-то, в любое значение, кроме Undefined
или Restricted
).
Если вы установите значение в AllSigned
вместо RemoteSigned
, то для запуска локальных скриптов (владельцем которых являетесь вы) они должны иметь цифровую подпись.
При использовании RemoteSigned
должны иметь цифровую подпись только те скрипты, у которых ZoneIdentifier
установлен в значение Internet
(скачены по сети).
Если вы администратор и хотите установить значение политики для всех пользователей, добавьте флаг -Scope LocalMachine
.
Если вы обычный пользователь и не имеете прав администратора, то используйте флаг -Scope CurrentUser
для применения политики только для текущего пользователя.
Подробнее о PowerShell Scopes: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_scopes
Подробнее о PowerShell ExecutionPolicy: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy
> Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned -Force
Если вы используете PowerShell 5 или PowerShell 4 с установленным PackageManagement, то Posh-Git можно установить с помощью пакетного менеджера.
Дополнительная информация о галерее PowerShell: 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 # Последняя бета версия с поддержкой PowerShell Core
Если вы хотите установить Posh-Git для всех пользователей в системе, то в команде выше используйте флаг -Scope AllUsers
, а её выполнение следует производить с повышенными привилегиями.
Если вторая команда завершится ошибкой типа Module 'PowerShellGet' was not installed by using Install-Module
, то необходимо выполнить следующую команду:
> Install-Module PowerShellGet -Force -SkipPublisherCheck
А затем повторить установку. Это происходит потому, что поставляемые вместе с Windows PowerShell модули подписаны другим сертификатом.
Для добавления git информации в приглашение ввода необходимо импортировать модуль Posh-Git
.
Для автоматического импорта модуля Posh-Git при каждом запуске PowerShell, выполните команду Add-PoshGitToProfile
, которая добавит инструкции импорта в ваш $profile
скрипт.
Этот скрипт выполняется каждый раз как вы открываете консоль PowerShell.
Имейте ввиду, что существует несколько $profile
скриптов: например, один для консоли, а другой для ISE.
> Import-Module posh-git
> Add-PoshGitToProfile -AllHosts
Скачайте релиз Posh-Git с https://github.com/dahlbyk/posh-git/releases и распакуйте.
Затем импортируйте модуль используя полный путь к файлу posh-git.psd1
:
> Import-Module <путь-к-распакованному-каталогу>\src\posh-git.psd1
> Add-PoshGitToProfile -AllHosts
В файл profile.ps1
будет добавлена соответствующая строка, за счёт которой Posh-Git будет подключаться каждый раз при запуске PowerShell.
Описание сводной информации о статусе Git, отображаемой в приглашении ввода, приведено здесь: https://github.com/dahlbyk/posh-git/blob/master/README.md#git-status-summary-information. Дополнительные сведения по настройке приглашения ввода приведены здесь: https://github.com/dahlbyk/posh-git/blob/master/README.md#customization-variables.