power shell不显示git分支

ps1 文件类似 linux 的 ~/.profile 文件,在 shell 初始化时会预先执行。在 Powershell 中, ps1 文件的路径保存在 $Profile 变量中,输入 echo $Profile 命令能看到它的绝对路径:

编辑这个文件,就能使Powershell按照我们的要求初始化 

当然了,最起初的时候是没有这个文件的,需要我们按照对应目录手动去创建

可以使用命令(安装了sublime Text 并添加了环境变量Powershell 有一个特殊的函数: prompt 函数,这个函数规定了提示符的内容和外观。默认的 prompt 函数规定了提示符的默认外观,也就是这样:) 

> subl $profile

Powershell 有一个特殊的函数: prompt 函数,这个函数规定了提示符的内容和外观。默认的外观就是我们所见的,这里就不赘述了!

通过 prompt 函数的返回值我们就能自定义提示符。返回值可以是固定的字符串,也可以是 powershell 提供的函数,例如

$(Get-Date)   # 获取当前时间
$(Get-Location)  # 获取当前目录

大部分函数返回值是 Object 类型,并不是字符串格式,用双引号可以强制转换为字符串类型,具体怎么操作,详情百度!

当然了可能会碰到  ...\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1这个文件无法加载,如下图示:

以管理员身份运行Windows Powershell

输入:

get-ExecutionPolicy # 查看系统执行策略状态
# 返回 Restricted
set-executionpolicy remotesigned # 修改执行策略状态

get-ExecutionPolicy # 查看系统执行策略状态
# 返回 remotesigned 

 你会发现问题解决!

让你的power shell 显示git 分支

开源方案 posh-git

有一套现成的开源方案: posh-git ,可以在命令行上显示分支名和当前目录树的改动情况。但是这个库就像航空母舰,功能虽强大,但是 load 需要稍多时间。如果只需要显示分支名,可以稍微用几行代码即可实现

判断当前目录是否 git 控制

判断当前目录是否 git 控制的方法可以用 git rev-parse 命令,如果返回值为 0,即表示当前目录由 git 控制;非零的返回值表示当前目录没有被 git 控制,并且会向标准输出打印一行错误信息。

为了不显示这行错误信息,我们需要把 git rev-parse 命令的输出重定向到 null 中去,在 Powershell 中,有一个函数 Out-Null ,可以实现这个功能。所以完整一行的写法为:

git rev-parse | Out-Null

判断命令

如果当前目录是 git 控制的,就可以使用 git branch 命令获取分支名。这里需要加一个判断。

Powershell 中有一个特殊变量 $? ,如果他前面的命令执行成功了,这个变量值就是true,反之就是false,所以可以在上面语句的后方判断这个变量的值。

获取分支名

获取分支名的命令是 git branch ,不带参数时,显示本地分支列表,再加上 --show-current ,可以只显示当前分支名,这正是我们需要的。

git branch ---show-current ---no-color

--no-color 显示不带颜色的字样。

最终结果

function prompt 
{ 
	$random = new-object random 
    $color=[System.ConsoleColor]$random.next(1,16) 
    Write-Host ("[" + $(get-Date) + "] ") -nonewline -foregroundcolor green 
    Write-Host $(get-location) -nonewline -foregroundcolor $color
    git rev-parse | Out-Null
 
    if($?){
    	 Write-Host (" (" + $(git branch --show-current) + ")") -NoNewLine -ForegroundColor Magenta
    }
    Write-Host (">") -nonewline -foregroundcolor $color
    return " "  # 不加这句会多一个 PS >
} 

代码所放位置:

 最终结果显示如下:

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值