在Git存储库中,是否可以将分支的Tab键完成添加到Powershell?例如:
PS> git checkout ma
TAB
会导致
PS> git checkout master
答案 0 :(得分:27)
为了实现这一点,需要存在PowerShell的git提供程序。
经过快速搜索后,显然存在类似的东西,奇怪但恰如其分地命名为posh-git:
http://github.com/dahlbyk/posh-git
一组PowerShell脚本 提供Git / PowerShell集成
- 提示Git存储库:Git存储库中的提示可以 显示当前分支和状态 文件(添加,修改,
删除)。- 选项卡完成:为常用命令提供选项卡完成时间 用git。例如。
git ch<tab>
- &gt;git checkout
用法
请参阅profile.example.ps1了解您的情况 可以集成选项卡完成 和/或git提示你自己 轮廓。您也可以选择是否 高级git命令显示在 标签扩展或仅简单/常见 命令。默认很简单。
答案 1 :(得分:2)
我写了一个generic provider for PowerShell,其行为可以完全在powershell脚本中实现。如果一个GIT提供者不存在(或者已经死亡,或者说是不完整的话),那么这将是一个理想的起点。
答案 2 :(得分:1)
如果posh-git太多,我会写这个小PS“ gem”:
function co
{
param(
[Parameter(Mandatory)]
[ValidateNotNullOrEmpty()]
[ArgumentCompleter({
param($pCmd, $pParam, $pWord, $pAst, $pFakes)
$branchList = (git branch --format='%(refname:short)')
if ([string]::IsNullOrWhiteSpace($pWord)) {
return $branchList;
}
$branchList | Select-String "$pWord"
})]
[string] $branch
)
git checkout $branch;
}
更新:重构后在空格后调用制表符补全且不能匹配任何部分字符串时返回分支列表。如果只有一个分支,将返回“ master”
作为奖励,您知道您可以从Shell调用TortoiseGit吗?
function dif
{
TortoiseGitProc.exe /command:repostatus
}