在Windows命令提示符下显示当前GIT分支名称

时间:2016-03-16 21:55:23

标签: windows git branch command-prompt

可以在常规的Windows命令提示符下显示当前的git分支名称吗? 让我们说在Windows 7或10上。

6 个答案:

答案 0 :(得分:7)

这是可能的。您甚至可以为终端自定义主题。 以下是步骤:

  1. 显然,您首先需要使用 Git。从 Git website
  2. 安装适用于 Windows 的 Git
  3. 然后从“Windows 应用商店”下载“Windows 终端”应用。它具有多种功能和新特性,您可以在同一窗口中打开不同终端的多个选项卡等等。
  4. 安装“Windows 终端”后,打开它,现在您应该使用 PowerShell 安装“Posh-Git”和“Oh-My-Posh”:(如果您还没有安装 NuGet,则可能需要安装它。如果是这种情况,您的 PowerShell 命令行将询问您是否要安装 NuGet。选择 [Y] 是。您可能还需要批准从 PSGallery(一个“不受信任的存储库”)安装模块。选择 [Y] 是。 )
Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUser
  1. 现在用 notepad $PROFILE 打开您的“PowerShell”配置文件,并将这些行添加到文件末尾:(这是与“Windows 终端”配置文件不同的配置文件。PowerShell 配置文件是每次 PowerShell 时运行的脚本开始。)
Import-Module posh-git
Import-Module oh-my-posh
Set-Theme Paradox
  1. 现在你看到终端上的一些字符是正方形,因为默认字体不支持它们。 (根据终端的字体,您可能没有看到此问题。如果您看到所有字符都很好,而不是正方形,请跳过此步骤)您想安装“Cascadia PL”字体来支持这些字符。从 Cascadia Code release page 下载它们。您需要安装这些版本的字体才能支持字符:
Cascadia Code PL
Cascadia Mono PL
  1. 然后,在 Windows 终端中,按 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。

Call Git Bash in the system menu

默认情况下,git-bash环境会显示您所在的分支。

Screenshot of the git-bash running environment

答案 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提供了一个很棒的命令行视图。 它还支持上下文菜单,可以在任何位置单击鼠标右键打开。

snapshot

答案 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” 更新显示的分支名称。