Gab*_*art 36 git powershell autocomplete
在Git存储库中,是否可以将分支的选项卡完成添加到Powershell?例如:
PS> git checkout ma
TAB
会导致
PS> git checkout master
Run Code Online (Sandbox Code Playgroud)
fle*_*her 35
为了实现这一点,需要存在PowerShell的git提供程序.
在快速搜索之后,显然存在类似的东西,奇怪但恰当地命名为posh-git:
http://github.com/dahlbyk/posh-git
一组PowerShell脚本,提供Git/PowerShell集成
- 提示Git存储库:Git存储库中的提示可以显示当前分支和文件的状态(添加,修改,
删除).- 选项卡完成:使用git时为常用命令提供选项卡完成.例如
git ch<tab>
- >git checkout
用法
有关如何将制表符完成和/或git提示符集成到您自己的配置文件中的信息,请参阅profile.example.ps1.您还可以选择是否在选项卡扩展中显示高级git命令,还是仅显示简单/常用命令.默认很简单.
我写了这个小小的 PS“gem”,如果 posh-git 太多了。
只需将它放在您的PowerShell 配置文件中即可键入co
(带空格)并点击Tab以触发完成并在分支列表中循环:
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;
}
Run Code Online (Sandbox Code Playgroud)
更新:重构为在空格后调用制表符完成时返回分支列表,并且无法匹配部分字符串。如果这只是一个分支,将返回“master”
作为奖励,您知道可以从 shell 调用 TortoiseGit 吗?
function dif
{
TortoiseGitProc.exe /command:repostatus
}
Run Code Online (Sandbox Code Playgroud)