Как я могу отобразить свое текущее имя ответвления мерзавца в моей подсказке PowerShell?

Спасибо за вашу помощь! Я решил, добавив

    <plugin>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>9.4.14.v20181114</version>
    </plugin>
51
задан Community 23 May 2017 в 02:32
поделиться

3 ответа

С Мерзавцем 2.22 (2 квартал 2019), любой сценарий (Powershell или не) мог использовать новое --show-current опция .

$branch = git branch --show-current

, Если пустой, это означает "отсоединенную ГОЛОВУ".

0
ответ дан 7 November 2019 в 10:14
поделиться

Из ответа @tamj0rd2 мы можем получить имя ответвления к строковой переменной как это.

$branch = git rev-parse --abbrev-ref HEAD
echo $branch
0
ответ дан 7 November 2019 в 10:14
поделиться

Если вам нужны вкладки, почему бы не использовать TabControl с UserControls внутри? Если вам нужно преобразовать одну из этих вкладок в плавающее окно, просто поместите UserControl в новое окно ...

com / 2008/10/12 / displaying-git-branch-on-your-powershell-prompt /

Я немного изменил его, чтобы отобразить путь к каталогу и немного форматирования. Он также устанавливает путь к моему расположению корзины Git, поскольку я использую PortableGit.

# General variables
$pathToPortableGit = "D:\shared_tools\tools\PortableGit"
$scripts = "D:\shared_tools\scripts"

# Add Git executables to the mix.
[System.Environment]::SetEnvironmentVariable("PATH", $Env:Path + ";" + (Join-Path $pathToPortableGit "\bin") + ";" + $scripts, "Process")

# Setup Home so that Git doesn't freak out.
[System.Environment]::SetEnvironmentVariable("HOME", (Join-Path $Env:HomeDrive $Env:HomePath), "Process")

$Global:CurrentUser = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$UserType = "User"
$CurrentUser.Groups | foreach { 
    if ($_.value -eq "S-1-5-32-544") {
        $UserType = "Admin" } 
    }

function prompt {
     # Fun stuff if using the standard PowerShell prompt; not useful for Console2.
     # This, and the variables above, could be commented out.
     if($UserType -eq "Admin") {
       $host.UI.RawUI.WindowTitle = "" + $(get-location) + " : Admin"
       $host.UI.RawUI.ForegroundColor = "white"
      }
     else {
       $host.ui.rawui.WindowTitle = $(get-location)
     }

    Write-Host("")
    $status_string = ""
    $symbolicref = git symbolic-ref HEAD
    if($symbolicref -ne $NULL) {
        $status_string += "GIT [" + $symbolicref.substring($symbolicref.LastIndexOf("/") +1) + "] "

        $differences = (git diff-index --name-status HEAD)
        $git_update_count = [regex]::matches($differences, "M`t").count
        $git_create_count = [regex]::matches($differences, "A`t").count
        $git_delete_count = [regex]::matches($differences, "D`t").count

        $status_string += "c:" + $git_create_count + " u:" + $git_update_count + " d:" + $git_delete_count + " | "
    }
    else {
        $status_string = "PS "
    }

    if ($status_string.StartsWith("GIT")) {
        Write-Host ($status_string + $(get-location) + ">") -nonewline -foregroundcolor yellow
    }
    else {
        Write-Host ($status_string + $(get-location) + ">") -nonewline -foregroundcolor green
    }
    return " "
 }

Пока что это работало очень хорошо. В репо приглашение выглядит примерно так:

GIT [master] c: 0 u: 1 d: 0 | J: \ Projects \ forks \ fluent-nhibernate>

* ПРИМЕЧАНИЕ. Обновлено с учетом предложений Якуба Наребски.

  • Удалены вызовы git branch / git status.
  • Устранена проблема, из-за которой 'git config --global' завершался сбоем, потому что $ HOME не был установлен.
  • Устранена проблема, из-за которой переход к каталогу, в котором не было каталога .git, приводил к возврату форматирования на приглашение PS.
23
ответ дан 7 November 2019 в 10:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: