在windows命令提示符下显示当前GIT分支名称
是否可以在常规windows命令提示符中显示当前git分支名称?在windows命令提示符下显示当前GIT分支名称,windows,git,branch,command-prompt,Windows,Git,Branch,Command Prompt,是否可以在常规windows命令提示符中显示当前git分支名称? 比如说在windows 7或10上。您不能通过基于windows的“命令提示符”执行此操作。但是,有一个环境可以在您的windows环境上运行,确实如此 运行GitWindows安装程序并允许安装后,可以从上下文菜单调用GitBash 默认情况下,git bash环境显示您所在的分支 这是我正在使用的git.bat。我从以下链接得到了答案: 首先,在文件夹中创建git.bat文件,然后将该文件夹添加到git.exe的路径和行的
比如说在windows 7或10上。您不能通过基于windows的“命令提示符”执行此操作。但是,有一个环境可以在您的windows环境上运行,确实如此 运行GitWindows安装程序并允许安装后,可以从上下文菜单调用GitBash 默认情况下,git bash环境显示您所在的分支
这是我正在使用的git.bat。我从以下链接得到了答案: 首先,在文件夹中创建git.bat文件,然后将该文件夹添加到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
)
我正在使用(已停止)它为git提供了一个很棒的命令行视图。 它还支持上下文菜单,可以从右键单击的任何位置打开
如果您使用的是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提示符。是的,您可以。您可以创建一个脚本并将其命名为“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时,也有一种方法可以自动触发脚本。我会在某个时候研究这个问题并更新这个答案
我从以下两个来源获得了解决方案:
免责声明:切换到新分支后,您必须触发“gb”
更新显示的分支名称
这是可能的。您甚至可以为终端自定义主题。 以下是步骤:
notepad$profile
打开您的“PowerShell”配置文件,并在文件末尾添加以下行:(这是一个与“Windows终端”配置文件不同的配置文件。PowerShell配置文件是每次启动PowerShell时运行的脚本。)"terminal.integrated.fontFamily": "Cascadia Code PL"
PS 2:为了了解更多关于“噢,我的时髦”的信息,并改变它的主题,请访问以获取更多信息
资料来源:
git status
在第一行显示当前分支git分支-a
列出所有本地分支,其中当前分支标有a*
。这就是你想要的吗?当然不是:)你说的是纯git命令,我说的是win命令提示符,类似于Linux中的bash。更简单的答案,适用于所有地方:不错,但它需要在提示符上更新分支名称之前执行git命令。(另外,我无法使git.bat覆盖git.exe)系统可能正在搜索.bat之前的.exe。您可以将git.exe重命名为其他名称,然后使用该名称调用.bat文件中正确的.exe文件。请参见,我不知何故使用了git CMD,但无法看到我的分支名称。安装了git,它安装了git bash,然后我就可以看到我的分支名称。另外,git bash可以集成为VS Code中的默认终端。这里只是一个注释,我使用的是git bash,但我需要使用CMD的原因是因为git bash中的环绕节点和Ctrl+C功能当前已损坏。仅供将来参考,babun是的,很遗憾:(,又一个最好的软件停产了。但仍然在使用它,没有任何问题。
Import-Module posh-git
Import-Module oh-my-posh
Set-Theme Paradox
Cascadia Code PL
Cascadia Mono PL
"fontFace": "Cascadia Code PL"
"terminal.integrated.fontFamily": "Cascadia Code PL"