【问题标题】:Why is "MINGW64" appearing on my Git bash?为什么“MINGW64”出现在我的 Git bash 上?
【发布时间】:2015-11-28 03:57:22
【问题描述】:

我不得不格式化我的笔记本电脑,所以我不得不再次安装 Git。不过它和我昨天的有很大不同,图标不再是默认的橙色,现在看起来更像Chrome了。

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

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

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

谢谢!

【问题讨论】:

  • 8 月 31 日刚刚发布。所以在那之前你可能有一个旧版本。这个版本显然比您以前的版本具有更新的图标和更新的 shell 配置。我们不知道你下载了什么(因为你没有告诉我们)所以不能说它是否是正确的。
  • 嗨,我把链接放在了问题上,这个图标的奇怪之处在于我在其他任何地方都找不到它。关于每一行中的“MINGW64”的任何线索或为什么存在?谢谢!
  • 这是新版本。 MINGW64 可能是平台。 declare -p PS1 说什么?它应该在那里有一些东西(可能是函数调用)。如果你不喜欢它,你可以改变它。
  • 是的,我不知道为什么那个新图标不在 Logos 或其他网站上。也许它无意中潜入了 Windows 版本,或者该站点只是滞后了,或者可能完全是其他原因。如果您想要更正式的答案,可以直接联系 git 人员。
  • 每次安装Git都要搜索这个问题

标签: windows git bash mingw-w64


【解决方案1】:

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

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

【讨论】:

  • 在 bash 终端中导航,这将在 /etc/profile.d/git-prompt.sh
  • 在 windows 上可以在 C:\Program Files\Git\etc\profile.d
  • 还有 TITLEPREFIX,您可以从窗口标题“TITLEPREFIX=SDK #-${MSYSTEM#MINGW}”中删除它
  • 如果您的终端来自于源树的 Atlassian 安装,则此文件位于 %LOCALAPPDATA% \Atlassian\SourceTree\git_local\etc\profile.d
  • 不错!我不得不将我的 \etc\profile.d\git-prompt.sh 中的内容复制到 ~\.bash_profile 中,然后注释掉这两行。有效!
【解决方案2】:

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

MINGW64 是来自MSYSTEM 环境变量的值。这已通过在 /etc/bash.bashrc 文件中设置 PS1 包含在 bash 提示符中。您可以在自己的 $HOME/.profile 中覆盖它,或者根据需要编辑分发的那个以将其删除。

【讨论】:

  • $HOME/.profile 对我来说不存在,所以我创建了它,复制了/etc/git-prompt.sh 的内容,并围绕#show MSYSTEM 进行了修改
  • 如何摆脱粉红色MINGW64的答案在这里stackoverflow.com/a/32912485/332788
【解决方案3】:

“Git for windows”包括 git plus a variety of additional software, which you may already have on your machine。这包括:

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

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

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

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

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

(顺便说一下Add-Pathvariable来自PSCX

【讨论】:

  • 由于社论而被否决。不过信息很好。
  • 1) “一堆不必要的东西”这句​​话表达了你对它的个人看法。描述包含的内容和原因会更中立,技术上更准确。尊重人们在 Git for Windows 上投入了大量时间的事实,它是一个庞大的社区,并且事情的结构是有充分理由的。 2) 说 Git Bash“实际上不是一件事”是不屑一顾的。它一件事:它是 Git for Windows 附带的提示,建立在 MinGW 之上。说它“只是某人喜欢的 PS1”意味着个人授权,而不是社区驱动的 OSS。
  • 我仍然认为这种语言有点不公平——例如,在最近的 Windows 10 更新之前的 Windows 版本中没有附带 bash;一般来说,更公平的说法是“包括 git 以及旨在使 Git 开箱即用的各种附加软件,而不管您现有的 Windows 配置如何。”但我真的很感谢你的努力,所以我转而投赞成票。
  • @ctrueden 谢谢,已调整为指定 Windows 10。
  • 我宁愿认为这是唯一一个试图回答真正问题的人。谁真正关心“MINGW”的粉红色字形。
【解决方案4】:

如@patthoyts 所述

MINGW64 是用于 Windows 2.x 的 Git 的新图标。 MINGW64 是来自 MSYSTEM 环境变量的值。这已通过在 /etc/bash.bashrc 文件中设置 PS1 包含在 bash 提示符中。您可以在自己的 $HOME/.profile 中覆盖它,也可以根据需要编辑分发的文件以将其删除。

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

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

这些是git-prompt.sh 中的 4 行,通常是第 14 到 17 行,可以通过在每行的开头放置 # 来将其注释掉,以删除以绿色显示的计算机名称和以紫色显示的 MSYSTEM。如果您只想删除其中之一,您可以相应地注释行。它应该看起来像这样

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

【讨论】:

  • 很好的答案,易于理解-非常感谢
【解决方案5】:

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

当我在搜索框中简单地键入“Bash”然后按 Enter 键时,Windows 会打开“最佳匹配”,这恰好(在我的情况下)是使用 MINGW64 进行 GIT 安装。如果您键入“Ubuntu”,或者如果您查看开始菜单的选项,您应该会看到 other bash。

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

【讨论】:

    【解决方案6】:

    在新的 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

    • 我的终端示例:

    【讨论】:

    • 这可以完全覆盖 PS1,但会从提示中消除 git(分支)信息,这可能会让人们想知道为什么一个人甚至使用 Git Bash 而不是一些不太具体的东西,比如 Cygwin git 安装和 git-completion.bash 就位(公平地说,无论如何人们可能会想知道)。
    【解决方案7】:

    export PS1="${PS1/\$TITLEPREFIX:}"; export PS1="${PS1/\$MSYSTEM }" &gt;&gt; ~/.bashrc

    【讨论】:

    • 感谢您的回答。你能解释一下这是如何解决问题的吗?
    • @ggorlen 它通过完全替换变量(以及它们后面的单数字符)来覆盖(逐渐增强)PS1。除了运行该命令(并重新获取 ~/.bashrc 或重新运行 Git Bash)之外,什么都不需要。
    • 很好,谢谢。我建议您编辑您的帖子以包含该信息以供未来的读者阅读。
    • @ggorlen 通行证。这里已经有足够多的论文作为答案了。另外,它就在评论中,无聊的官僚们不能毫无意义地删除。 (我喜欢你的网站。)
    【解决方案8】:

    最简单的方法是使用:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-30
      • 1970-01-01
      • 2018-03-12
      • 2016-12-13
      • 2021-11-26
      • 1970-01-01
      • 2022-07-29
      相关资源
      最近更新 更多