在Powershell中为Git分支添加选项卡补全功能。

15 浏览
0 Comments

在Powershell中为Git分支添加选项卡补全功能。

在Git仓库内部,是否可以在Powershell中为分支添加标签自动补全?例如:

PS> git checkout maTAB

将会得到

PS> git checkout master

0
0 Comments

为了实现这个目标,PowerShell需要存在一个用于Git的提供程序。

经过快速搜索,似乎有类似的东西存在,这个奇怪但贴切地命名为posh-git:

http://github.com/dahlbyk/posh-git

一组PowerShell脚本,提供Git/PowerShell集成

  • 提示Git存储库:Git存储库内的提示可以显示当前分支和文件的状态(添加、修改、删除)。
  • Tab补全:在使用git命令时提供常见命令的Tab补全。例如:git ch<tab> -->git checkout

使用方法

请参考profile.example.ps1,了解如何将Tab补全和/或git提示集成到自己的配置文件中。您还可以选择在Tab扩展中显示高级git命令还是只显示简单/常见命令。默认是简单的。

我记得可以通过将msysgit中的必要内容添加到环境变量中,从而可以在其他地方运行它。

分支名称的补全对我有效。也许他们在您的评论之后添加了对此的支持。

关于POSH这个名字有什么奇怪的?POSH是PowerShell的缩写。

附注:posh-git(现在?)在官方Git文档中有提及:git-scm.com/book/en/v2/…

除了按照相当技术的文档进行操作外,您还可以按照这个简单的逐步指南进行操作。

0
0 Comments

在PowerShell中为Git分支添加标签完成的原因是为了提高命令行操作的效率和方便性。通过添加标签完成功能,用户可以在输入"co "后按下Tab键来触发自动完成,并通过循环遍历分支列表来选择分支。

为了实现这个功能,可以将以下代码添加到PowerShell配置文件中(通常是$PROFILE文件):

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;
}

这段代码定义了一个名为"co"的函数,它接受一个参数"branch",并使用ArgumentCompleter来实现标签完成功能。在函数内部,它使用git命令来获取分支列表,并根据输入的部分字符串来过滤分支列表。如果没有输入部分字符串,则返回完整的分支列表。

此外,还可以添加以下代码来调用TortoiseGit:

function dif
{
    TortoiseGitProc.exe /command:repostatus
}

这段代码定义了一个名为"dif"的函数,它使用TortoiseGitProc.exe命令来打开TortoiseGit的状态窗口。

通过将这些代码添加到PowerShell配置文件中,用户可以在使用Git时更加高效和方便。他们可以通过输入"co "并按下Tab键来自动完成分支名称,并且可以使用"dif"命令来打开TortoiseGit的状态窗口。

0