如何从自定义的Shell中使用GitHub for Windows附带的posh-git?

23

安装GitHub for Windows是获取初学者Git Windows应用程序、msysgit和posh-git的好方法,但您只能通过调用“GitHub.appref-ms --open-shell”打开git shell并使用posh-git。

我想做的是启动控制台,加载PowerShell,并使用随GitHub for Windows提供的posh-git - 但我找不到将其加载到PowerShell中的方法。

更新:我不想单独安装Git for Windows,因为已经安装了msysgit。

我可以通过从AppData\Local\Github文件夹调用shell1.ps1脚本来取得一些进展 - 它确实让我调用git。但与GitHub for Windows的“Git Shell”相反,它不显示我所在的分支。


这个链接有帮助吗?http://haacked.com/archive/2011/12/19/get-git-for-windows.aspx - CB.
1
@Christian - 不是的,请看更新后的问题。 - Sergey Aldoukhov
3个回答

56
虽然 @dahlbyk 的回答并没有提供解决方案,但它确实让我朝着正确的方向前进了。问题在于,在 Phil's Haack 博客文章中引用的 $env:posh-git 环境未定义,因此在 PowerShell 配置文件脚本中测试它不起作用。
但是,从同一个脚本运行 shell.ps1 和 profile.example.ps1 是有效的。以下是适用于 PowerShell 初学者的步骤:
1. 编辑或创建活动用户的 Documents\WindowsPowerShell 文件夹中的 Microsoft.PowerShell_profile.ps1(如果不存在则创建该文件夹)。 2. 添加以下 2 行:
. (Resolve-Path "$env:LOCALAPPDATA\GitHub\shell.ps1")
. $env:github_posh_git\profile.example.ps1

1
有没有办法防止它在每个命令上强制我登录? - Mark At Ramp51
1
这种方法也在Git文档中有记录 http://git-scm.com/book/en/v2/Git-in-Other-Environments-Git-in-Powershell - KyleMit
3
这里有一个快捷方式,适用于任何想要在Posh-Git中使用Console2 / ConsoleZ选项卡的人。将您的选项卡的Shell属性设置为:%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -NoExit -Command "&{ . (Resolve-Path "$env:LOCALAPPDATA\GitHub\shell.ps1"); . $env:github_posh_git\profile.example.ps1;}" - Jason Capriotti

7

3
按照这篇文章的指引,在PowerShell中安装并使用Posh-git,需要按照以下步骤进行:
  1. git clone git://github.com/dahlbyk/posh-git.git 克隆到指定目录
  2. 允许执行脚本,可选以下两种方式:
    1. Set-ExecutionPolicy RemoteSigned
    2. Set-ExecutionPolicy Unrestricted
  3. cd posh-git
  4. .\install.ps1
  5. . $PROFILE
我最初遵循了知名haacked.com 教程的指导(由@dahlbyk和@CB指出),但遇到了OP类似的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接