簡體   English   中英

在 Powershell 中為 Git 分支添加選項卡完成

[英]Add tab completion for Git branches in Powershell

在 Git 存儲庫中時,是否可以為 Powershell 的分支添加選項卡完成功能? 例如:

PS> git checkout ma TAB

會導致

PS> git checkout master

為此,需要存在 PowerShell 的 git 提供程序。

快速搜索后,顯然存在類似的東西,奇怪但恰如其分地命名為 posh-git:

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

一組提供 Git/PowerShell 集成的 PowerShell 腳本

  • Git 存儲庫提示:Git 存儲庫中的提示可以顯示當前分支和文件狀態(添加、修改、
    刪除)內。
  • Tab 補全:在使用 git 時為常用命令提供 Tab 補全。 例如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;
}

更新:重構為在空格后調用制表符完成時返回分支列表,並且無法匹配部分字符串。 如果這只是一個分支,將返回“master”

作為獎勵,您知道可以從 shell 調用 TortoiseGit 嗎?

function dif
{
    TortoiseGitProc.exe /command:repostatus
}

為PowerShell編寫了通用提供程序,其行為可以完全在powershell腳本中實現。 如果一個GIT提供者不存在(或已死或不足),這將是原型GIT提供者的理想起點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM