可以在常规的Windows命令提示符下显示当前的git分支名称吗? 让我们说在Windows 7或10上。
答案 0 :(得分:7)
这是可能的。您甚至可以为终端自定义主题。 以下是步骤:
Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUser
notepad $PROFILE
打开您的“PowerShell”配置文件,并将这些行添加到文件末尾:(这是与“Windows 终端”配置文件不同的配置文件。PowerShell 配置文件是每次 PowerShell 时运行的脚本开始。)Import-Module posh-git
Import-Module oh-my-posh
Set-Theme Paradox
Cascadia Code PL
Cascadia Mono PL
Ctrl+,
打开“settings.json”中的 Windows 终端配置文件设置,并将这些行添加到“配置文件”的“默认”部分,如下所示:"fontFace": "Cascadia Code PL"
How to go to the Windows Terminal settings picture guide
Where to change the font face picture guide
PS 1:如果你想在集成终端上进行这些更改,比如 VS Code 上的终端,你应该在 VS Code 的设置中添加这一行:
"terminal.integrated.fontFamily": "Cascadia Code PL"
PS 2:要了解有关“Oh-My-Posh”的更多信息并更改其主题,请访问 Oh-My-Posh's github page 了解更多信息。
来源:
https://docs.microsoft.com/en-us/windows/terminal/tutorials/powerline-setup https://www.hanselman.com/blog/how-to-make-a-pretty-prompt-in-windows-terminal-with-powerline-nerd-fonts-cascadia-code-wsl-and-ohmyposh
答案 1 :(得分:4)
您无法从基于Windows的“命令提示符”执行此操作。但是,有一个环境可以运行在Windows环境之上,确实如此。
运行Git Windows安装程序并允许git安装后,您可以从上下文菜单中调用git-bash。
默认情况下,git-bash环境会显示您所在的分支。
答案 2 :(得分:3)
这是我正在使用的git.bat。我从以下链接获得了答案:
https://www.nu42.com/2016/05/display-git-branch-windows-command-prompt.html
首先,在文件夹中创建git.bat文件,然后将该文件夹添加到PATH并在git.exe的行前面添加(我假设您已经在计算机中安装了git.exe)。这样可以确保每次在命令行中键入git时,都会触发新的git.bat而不是git.exe。
@echo off
git.exe %*
set GITBRANCH=
for /f %%I in ('git.exe rev-parse --abbrev-ref HEAD 2^> NUL') do set GITBRANCH=%%I
if "%GITBRANCH%" == "" (
prompt $P$G
) else (
prompt $P $C$E[32;7;32;47m%GITBRANCH%$E[0m$F $G
)
答案 3 :(得分:0)
我正在使用babun 它为git提供了一个很棒的命令行视图。 它还支持上下文菜单,可以在任何位置单击鼠标右键打开。
答案 4 :(得分:0)
如果使用的是Windows PowerShell,则可以通过在所使用的PowerShell窗口中运行以下命令来覆盖标准的“提示”功能。这将使其检测Git存储库并在提示字符串中列出Git分支:
Function Prompt
{
$git_cmd = "git rev-parse --abbrev-ref HEAD"
Invoke-Expression $git_cmd 2> $null | Tee-Object -Variable git_branch | Out-Null
$git_branch_text = $None
if ( $git_branch -And -Not $git_branch.StartsWith($git_cmd))
{
$git_branch_text = "[$git_branch] "
}
$stringBuilder = New-Object System.Text.StringBuilder
$null = $stringBuilder.Append("PS ")
if ($git_branch_text) { $null = $stringBuilder.Append($git_branch_text) }
$null = $stringBuilder.Append($($executionContext.SessionState.Path.CurrentLocation))
$null = $stringBuilder.Append($('>' * ($nestedPromptLevel + 1)))
$null = $stringBuilder.Append(" ")
return $stringBuilder.ToString()
}
PS C:\Users\username\Document\GitHub>
PS C:\Users\username\Document\GitHub>cd code_repository
PS [dev] C:\Users\username\Document\GitHub\code_repository>
PS [dev] C:\Users\username\Document\GitHub\code_repository>cd ..
PS C:\Users\username\Document\GitHub>
在PowerShell版本5.1.17763.592上进行了测试。
要在所有PowerShell命令窗口中应用此提示更改,请将此功能放在 C:\ Users \ username \ Documents \ WindowsPowerShell 中名为 profile.ps1 的文件中强>。在此之后打开的所有PowerShell命令窗口都位于Git存储库中的目录中时,都应具有Git提示。
答案 5 :(得分:0)
是的,可以。您可以创建一个脚本并将其命名为“ gb.bash”,然后在其中添加以下代码
@echo off
set GITBRANCH=
for /f "tokens=2" %%I in ('git.exe branch 2^> NUL ^| findstr /b "* "') do set GITBRANCH=%%I
if "%GITBRANCH%" == "" (
prompt $P$G
) else (
prompt $P $C$E[10;7;32;47m%GITBRANCH%$E[0m$F $G
)
然后转到您的环境变量,并将包含该脚本的文件夹添加到您的路径。
在此位置上,只需在git存储库中在终端上触发命令“ gb”,即可将分支名称放置在您当前所在的文件夹的路径上。
当前,此解决方案要求您手动触发命令“ gb”来触发脚本。但是,我确定启动CMD时,还有一种方法可以自动触发脚本。我会花一些时间并更新此答案。
我从以下两个来源获得了解决方案:
Show git branch in Windows command prompt
Display git branch in Windows command prompt
免责声明:切换到新分支后,您必须触发“ gb” 更新显示的分支名称。