繁体   English   中英

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

[英]show current GIT branch name in windows command prompt

是否可以在常规 Windows 命令提示符中显示当前的 git 分支名称?
假设在 Windows 7 或 10 上。

您不能从基于 Windows 的“命令提示符”执行此操作。 但是,有一个环境可以在您的 Windows 环境之上运行,确实如此。

运行 Git windows 安装程序并允许安装git后,您可以从上下文菜单调用 git-bash。

在系统菜单中调用 Git Bash

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

git-bash运行环境截图

这是我正在使用的 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 
)

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

  1. 显然,您首先需要使用 Git。 Git 网站安装适用于 Windows 的Git
  2. 然后从“Windows Store”下载“Windows Terminal”应用程序。 它具有多种功能和新功能,您可以在同一窗口上打开不同终端的多个选项卡等等。
  3. 安装“Windows Terminal”后,打开它,现在你应该使用 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 代码发布页面下载它们。 您需要安装这些版本的字体才能支持这些字符:
Cascadia Code PL
Cascadia Mono PL
  1. 然后,在 Windows 终端中,按Ctrl+,打开“settings.json”中的 Windows 终端配置文件设置,并将这些行添加到“配置文件”的“默认”部分,如下所示:
"fontFace": "Cascadia Code PL"

如何转到 Windows 终端设置图片指南

哪里改字体面图片指南

PS 1:如果你想在VS Code上的集成终端上进行这些更改,你应该在VS Code的设置中添加这一行:

"terminal.integrated.fontFamily": "Cascadia Code PL"

PS 2:想了解更多关于“Oh-My-Posh”并更改主题,请访问Oh-My-Posh的github页面以获取更多信息。


资料来源:

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

如果您使用的是 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的文件中。 在作为 Git 存储库一部分的目录中时,此后打开的任何 PowerShell 命令窗口都应该具有 Git 提示。

我正在使用babun (已停产)
它为 git 提供了一个很棒的命令行视图。 它还支持上下文菜单,可以通过右键单击从任何位置打开。

快照

是的,你可以。 您可以创建一个脚本并将其命名为“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 
)

然后转到您的环境变量并将包含此脚本的文件夹添加到您的路径中。

有了它,只需在终端上触发命令“gb”,而在 git 存储库中,分支名称将放置在您当前所在文件夹的路径上。

目前,此解决方案要求您手动触发命令“gb”来触发脚本。 但是,我确定还有一种方法可以在您启动 CMD 时自动触发脚本。 我会研究一段时间并更新这个答案。

我从这两个来源得到了解决方案:

在 Windows 命令提示符下显示 git branch

在 Windows 命令提示符下显示 git branch

免责声明:您必须在切换到新分支后触发 'gb' 以更新显示的分支名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM