Спасибо за вашу помощь! Я решил, добавив
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.4.14.v20181114</version>
</plugin>
С Мерзавцем 2.22 (2 квартал 2019), любой сценарий (Powershell или не) мог использовать новое --show-current
опция .
$branch = git branch --show-current
, Если пустой, это означает "отсоединенную ГОЛОВУ".
Из ответа @tamj0rd2 мы можем получить имя ответвления к строковой переменной как это.
$branch = git rev-parse --abbrev-ref HEAD
echo $branch
Если вам нужны вкладки, почему бы не использовать 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>
* ПРИМЕЧАНИЕ. Обновлено с учетом предложений Якуба Наребски.