|
5 | 5 | (((posh-git)))
|
6 | 6 | Windows 中早期的命令行终端 `cmd.exe` 无法自定义 Git 使用体验,但是如果你正在使用 Powershell,那么你就十分幸运了。
|
7 | 7 | 这种方法同样适用于 Linux 或 macOS 上运行的 PowerShell Core。
|
8 |
| -一个名为 Posh-Git (https://github.com/dahlbyk/posh-git[]) 的扩展包提供了强大的 tab 补全功能, 并针对提示符进行了增强,以帮助你聚焦于你的仓库状态。 |
| 8 | +一个名为 posh-git (https://github.com/dahlbyk/posh-git[]) 的扩展包提供了强大的 tab 补全功能,并针对提示符进行了增强,以帮助你聚焦于你的仓库状态。 |
9 | 9 | 它看起来像:
|
10 | 10 |
|
11 |
| -.附带了 Posh-Git 扩展包的 Powershell。 |
12 |
| -image::images/posh-git.png[附带了 Posh-Git 扩展包的 Powershell] |
| 11 | +.附带了 posh-git 扩展包的 Powershell。 |
| 12 | +image::images/posh-git.png[附带了 posh-git 扩展包的 Powershell] |
13 | 13 |
|
14 | 14 | ==== 安装
|
| 15 | + |
15 | 16 | ===== 前提需求(仅限 Windows)
|
16 |
| -在可以运行 PowerShell 脚本之前,你需要将本地的 ExecutionPolicy 设置为 RemoteSigned |
17 |
| -(可以说是允许除了 Undefined 和 Restricted 之外的任何内容)。如果你选择了 AllSigned |
18 |
| -而非 RemoteSigned,那么你的本地脚本还需要数字签名后才能执行。如果设置为 RemoteSigned, |
19 |
| -那么只有“ZoneIdentifier”设置为 Internet,即从 Web 上下载的脚本才需要签名,其它则不需要。 |
20 |
| -如果你是管理员,想要为本机上的所有用户设置它,请使用“-Scope LocalMachine”。 |
21 |
| -如果你是没有管理权限的普通用户,可使用“-Scope CurrentUser”来只为自己设置它。 |
| 17 | + |
| 18 | +在可以运行 PowerShell 脚本之前,你需要将本地的 `ExecutionPolicy` 设置为 `RemoteSigned`(可以说是允许除了 `Undefined` 和 `Restricted` 之外的任何内容)。 |
| 19 | +如果你选择了 `AllSigned` 而非 `RemoteSigned`,那么你的本地脚本还需要数字签名后才能执行。 |
| 20 | +如果设置为 `RemoteSigned`,那么只有 `ZoneIdentifier` 设置为 `Internet`,即从 Web 上下载的脚本才需要签名,其它则不需要。 |
| 21 | +如果你是管理员,想要为本机上的所有用户设置它,请使用 `-Scope LocalMachine`。 |
| 22 | +如果你是没有管理权限的普通用户,可使用 `-Scope CurrentUser` 来只为自己设置它。 |
22 | 23 |
|
23 | 24 | 有关 PowerShell Scopes 的更多详情: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_scopes[]
|
24 | 25 |
|
25 | 26 | 有关 PowerShell ExecutionPolicy 的更多详情: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy[]
|
26 | 27 |
|
| 28 | +对于所有用户使用以下命令来设置 `ExecutionPolicy` 为 `RemoteSigned`: |
| 29 | + |
27 | 30 | [source,powershell]
|
28 | 31 | -----
|
29 | 32 | > Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned -Force
|
30 | 33 | -----
|
31 | 34 |
|
32 | 35 | ===== PowerShell Gallery
|
| 36 | + |
33 | 37 | 如果你有 PowerShell 5 以上或安装了 PackageManagement 的 PowerShell 4,那么可以用包管理器来安装 posh-git。
|
34 | 38 |
|
35 | 39 | 有关 PowerShell Gallery 的更多详情: https://docs.microsoft.com/en-us/powershell/scripting/gallery/overview[]
|
| 40 | + |
36 | 41 | [source,powershell]
|
37 | 42 | -----
|
38 | 43 | > Install-Module posh-git -Scope CurrentUser -Force
|
39 | 44 | > Install-Module posh-git -Scope CurrentUser -AllowPrerelease -Force # 带有 PowerShell Core 支持的更新的 beta 版
|
40 | 45 | -----
|
41 |
| -如果你想为所有的用户安装 posh-git,请使用“-Scope AllUsers”并在管理员权限启动的 PowerShell 控制台中执行。 |
42 |
| -如果第二条命令执行失败并出现类似 `Module 'PowerShellGet' was not installed by using Install-Module` 这样的错误, |
43 |
| -那么你需要先运行另一条命令: |
| 46 | + |
| 47 | +如果你想为所有的用户安装 posh-git,请使用 `-Scope AllUsers` 并在管理员权限启动的 PowerShell 控制台中执行。 |
| 48 | +如果第二条命令执行失败并出现类似 `Module 'PowerShellGet' was not installed by using Install-Module` 这样的错误,那么你需要先运行另一条命令: |
44 | 49 |
|
45 | 50 | [source,powershell]
|
46 | 51 | ----
|
47 | 52 | > Install-Module PowerShellGet -Force -SkipPublisherCheck
|
48 | 53 | ----
|
49 | 54 |
|
50 |
| -之后你可以再试一遍。出现这个错误的原因是 Windows PowerShell 搭载的模块是以不同的发布证书签名的。 |
| 55 | +之后你可以再试一遍。 |
| 56 | +出现这个错误的原因是 Windows PowerShell 搭载的模块是以不同的发布证书签名的。 |
51 | 57 |
|
52 | 58 | ===== 更新 PowerShell 提示符
|
53 |
| -要在你的提示符中包含 Git 信息,那么需要导入 Posh-Git 模块。 |
54 |
| -要让 PowerShell 在每次启动时都导入 Posh-Git,请执行 Add-PoshGitToProfile 命令, |
55 |
| -它会在你的 $profile 脚本中添加导入语句。此脚本会在每次打开新的 PowerShell 终端时执行。 |
56 |
| -注意,存在多个 $profile 脚本。例如,其中一个是控制台的,另一个则属于 ISE。 |
| 59 | + |
| 60 | +要在你的提示符中包含 Git 信息,那么需要导入 posh-git 模块。 |
| 61 | +要让 PowerShell 在每次启动时都导入 posh-git,请执行 `Add-PoshGitToProfile` 命令,它会在你的 `$profile` 脚本中添加导入语句。 |
| 62 | +此脚本会在每次打开新的 PowerShell 终端时执行。 |
| 63 | +注意,存在多个 `$profile` 脚本。 |
| 64 | +例如,其中一个是控制台的,另一个则属于 ISE。 |
| 65 | + |
57 | 66 | [source,powershell]
|
58 | 67 | -----
|
59 | 68 | > Import-Module posh-git
|
60 | 69 | > Add-PoshGitToProfile -AllHosts
|
61 | 70 | -----
|
62 | 71 |
|
63 | 72 | ===== 从源码安装
|
64 |
| -只需从 (https://github.com/dahlbyk/posh-git[]) 下载一份 Posh-Git 的发行版并解压即可。 |
65 |
| -接着使用 posh-git.psd1 文件的完整路径导入此模块: |
| 73 | + |
| 74 | +只需从 https://github.com/dahlbyk/posh-git[] 下载一份 posh-git 的发行版并解压即可。 |
| 75 | +接着使用 `posh-git.psd1` 文件的完整路径导入此模块: |
| 76 | + |
66 | 77 | [source,powershell]
|
67 | 78 | -----
|
68 | 79 | > Import-Module <path-to-uncompress-folder>\src\posh-git.psd1
|
69 | 80 | > Add-PoshGitToProfile -AllHosts
|
70 | 81 | -----
|
71 | 82 |
|
72 |
| -它将会向你的 `profile.ps1` 文件添加适当的内容,Posh-Git 将会在下次打开 PowerShell 时启用。 |
| 83 | +它将会向你的 `profile.ps1` 文件添加适当的内容,posh-git 将会在下次打开 PowerShell 时启用。 |
| 84 | + |
73 | 85 | 命令提示符显示的 Git 状态信息的解释见: https://github.com/dahlbyk/posh-git/blob/master/README.md#git-status-summary-information[]
|
74 |
| -如何定制 Posh-Git 提示符的详情见: https://github.com/dahlbyk/posh-git/blob/master/README.md#customization-variables[] |
| 86 | +如何定制 Posh-Git 提示符的详情见: https://github.com/dahlbyk/posh-git/blob/master/README.md#customization-variables[]。 |
0 commit comments