为什么 "MINGW64" 出现在我的 Git bash 上?

Why is "MINGW64" appearing on my Git bash?

我不得不格式化我的笔记本电脑,所以我不得不重新安装 Git。不过和昨天的有点不一样,图标不是默认的橙色了,现在更像Chrome了

bash完全不同,每行都有一个紫色的“MINGW64”。它为什么在那里?

这是新的最终版本吗?还是我下载了不同的东西?

我下载了 https://github.com/git-for-windows/git/releases/download/v2.5.1.windows.1/Git-2.5.1-64-bit.exe from https://git-scm.com/downloads .

谢谢!

这是与 Git for Windows 2.x 一起使用的新图标。我想该网站需要更新,但通常志愿者不多。

MINGW64 是来自 MSYSTEM 环境变量的值。这已通过在 /etc/bash.bashrc 文件中设置 PS1 包含在 bash 提示中。您可以在自己的 $HOME/.profile 中覆盖它,或者如果您愿意,可以编辑分发的以删除它。

删除 'MINGW64' 的最简单方法是在文件中注释两行:

\Git\etc\profile.d\git-prompt.sh
...
# PS1="$PS1"'\[3[35m\]'       # change to purple
# PS1="$PS1"'$MSYSTEM '          # show MSYSTEM

我刚在我的机器上也注意到了这一点。您所指的橙色图标可能是您在 运行 "Bash on Ubuntu on Windows" 应用程序时通常会看到的 Ubuntu 图标。但是,当您安装 GIT 时,它还使用了 bash 的版本。该应用程序在开始菜单中名为 "Git Bash"。

当我在搜索框中简单地输入 "Bash" 然后按下回车键时,Windows 打开了 "best match",这恰好(在我的例子中)是 GIT 使用 MINGW64 安装。如果您改为键入 "Ubuntu",或者如果您查看开始菜单的选项,您应该会看到 other bash.

知道这两个环境是分开的很重要,因为来自一个环境的程序可能不会安装在另一个环境中。

"Git for windows" 包括 git 加上 a variety of additional software, which you may already have on your machine。这包括:

由于 PS1 品味通常是个人的,您可能更喜欢现有的设置。

如果您想要 git,但又不想所有额外的软件,您可以从 nuget 获得最小构建。

但是,如果您使用的 GUI 可能还包含嵌入式 git - 我个人使用 the one included with Sourcetree。在我的 powershell 配置文件中:

 Add-PathVariable "${env:UserProfile}\AppData\Local\Atlassian\SourceTree\git_local\bin"

这 git 无需对您的系统进行任何额外更改或其他软件的额外副本。

Add-Pathvariable 顺便说一下来自 PSCX

新 git 版本略有不同。

  • /etc/bash.bashrc中复制以下行: export PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[35m\]$MSYSTEM\[\e[0m\] \[\e[33m\]\w\[\e[0m\]\n'"${_ps1_symbol}"' '

  • 将其添加到 ~/.bashrc 并进行一些自定义编辑: export PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n '

    如果你不喜欢按Enter时多出的空行,就去掉上面的\n即可。

  • 获取 ~/.bashrc 文件: source ~/.bashrc

  • 我的终端示例:

export PS1="${PS1/$TITLEPREFIX:}"; export PS1="${PS1/$MSYSTEM }" >> ~/.bashrc

如@patthoyts所述

MINGW64 is the new icon being used with Git for Windows 2.x. The MINGW64 is the value from the MSYSTEM environment variable. This has been included in the bash prompt by setting PS1 in the /etc/bash.bashrc file. You can either override this in your own $HOME/.profile or edit the distributed one to remove that if you prefer.

MINGW64 和系统名称是我们不想或不需要经常看到的东西,有时可能希望删除它们以有效使用显示 space。为此,我们只需要注释掉通常在程序文件中的 \Git\etc\profile.d\git-prompt.sh 中的 4 行。

PS1="$PS1"'\[3[32m\]'       # change to green
PS1="$PS1"'\u@\h '             # user@host<space>
PS1="$PS1"'\[3[35m\]'       # change to purple
PS1="$PS1"'$MSYSTEM '          # show MSYSTEM

这些是 git-prompt.sh 中的 4 行,通常是第 14 到 17 行,可以通过在每行的开头放置 # 来注释掉它们,以删除以绿色和MSYSTEM 显示为紫色。如果您只想删除其中一个,您可以相应地注释行。它看起来应该类似于此

# PS1="$PS1"'\[3[32m\]'       # change to green
# PS1="$PS1"'\u@\h '             # user@host<space>
# PS1="$PS1"'\[3[35m\]'       # change to purple
# PS1="$PS1"'$MSYSTEM '          # show MSYSTEM

最简单的方法是使用:

$ parse_git_branch() { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ ()/'; }
$ export PS1="\u@ \[3[32m\]\w\[3[33m\]$(parse_git_branch)\[3[00m\] $ "

只是一个小小的补充。如果Windows安装在C盘,那么这里是编辑文件git-prompt.sh的路径并注释掉需要的行(通常是14-17):

C:\Program Files\Git\etc\profile.d