如何缩短Git Bash提示符(Windows)

29

如何将我的 git bash 提示符缩短为以下形式:

Malik@LAPTOP-7R9912OI MINGW64 ~/Desktop/test
$

变成这样

Malik@test$

我正在Windows上使用Git Bash,Git版本为2.21.0(2019年02月26日)

5个回答

34

另一种解决方法是前往 C:\Program Files\Git\etc\profile.d 并打开 git-prompt.sh 文件,该文件包含 Git Bash 的默认配置/提示。

if test -f /etc/profile.d/git-sdk.sh
then
    TITLEPREFIX=SDK-${MSYSTEM#MINGW}
else
    TITLEPREFIX=$MSYSTEM
fi

if test -f ~/.config/git/git-prompt.sh
then
    . ~/.config/git/git-prompt.sh
else
    PS1='\[\033]0;$TITLEPREFIX:$PWD\007\]' # set window title
    PS1="$PS1"'\n'                 # new line
    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
    # PS1="$PS1"'\[\033[33m\]'       # change to brownish yellow
    PS1="$PS1"'\W'                 # current working directory
    if test -z "$WINELOADERNOEXEC"
    then
        GIT_EXEC_PATH="$(git --exec-path 2>/dev/null)"
        COMPLETION_PATH="${GIT_EXEC_PATH%/libexec/git-core}"
        COMPLETION_PATH="${COMPLETION_PATH%/lib/git-core}"
        COMPLETION_PATH="$COMPLETION_PATH/share/git/completion"
        if test -f "$COMPLETION_PATH/git-prompt.sh"
        then
            . "$COMPLETION_PATH/git-completion.bash"
            . "$COMPLETION_PATH/git-prompt.sh"
            PS1="$PS1"'\[\033[36m\]'  # change color to cyan
            PS1="$PS1"'`__git_ps1`'   # bash function
        fi
    fi
    PS1="$PS1"'\[\033[0m\]'        # change color
    # PS1="$PS1"'\n'                 # new line
    PS1="$PS1"' $ '                 # prompt: always $
fi

MSYS2_PS1="$PS1"               # for detection by MSYS2 SDK's bash.basrc

# Evaluate all user-specific Bash completion scripts (if any)
if test -z "$WINELOADERNOEXEC"
then
    for c in "$HOME"/bash_completion.d/*.bash
    do
        # Handle absence of any scripts (or the folder) gracefully
        test ! -f "$c" ||
        . "$c"
    done
fi

在我的配置中,我注释掉了user@host<space>MINGW64,并通过将\w改为\W来更改工作目录为其基本名称。


13
这个方法可以用,但要小心:git更新会覆盖这个文件。这个文件检查~ / .config / git / git-prompt.sh是否存在,如果存在则优先采用,因此最好在那里进行更改,或直接在~ /.bashrc中更改。 - w5l
我无法更改git-prompt.sh文件,因为系统报告该文件是只读的。 chmod也无法工作(权限被拒绝)。 我可能错过了什么? - Amit128
1
直接编辑此文件并不是一个好主意。只需在您的用户文件(例如.bashrc.bash_profile)中重新配置PS1字符串即可。 - Dut A.

25
在Git Bash中:
cd ~
notepad .bashrc

在记事本中,添加以下行:PS1="foobar>" (将foobar> 替换为您想要的文本)

保存 ~/.bashrc 后,在 Git Bash 中运行该命令:

source ~/.bashrc

您可能会发现这个在线的.bashrc生成器很有用,可以用来尝试找到您喜欢的提示符。


1
在输入命令 notepad .bashrc 后,我收到了一条消息“是否要创建 .bashrc 文件”,并打开了一个空白文件。 - Malik Bagwala
1
@malikbagwala 然后回答“是”的话 - Govind Parmar

5
我希望为您提供一些基于Krizza的答案的调整建议。提示文件可以在更新Git For Windows安装时随时被覆盖,因此最好先复制它。幸运的是,该文件已经内置了一个方案:
首先复制默认的git-prompt.sh文件,并将其放在您自己的个人配置位置。在我的情况下,命令是:
cp /c/Program\ Files/Git/etc/profile.d/git-prompt.sh ~/.config/git/
不要跳过这一步! 现在请确保通过删除除了大的else从句中设置PS1的内容之外的所有内容来更新文件的副本。(在撰写本文时,我只保留第12-36行。)请注意,如果您跳过此步骤,则Git Bash将陷入无限循环并退出。

现在您可以随心所欲地编辑文件的副本。我个人偏好于注释掉显示用户和主机以及MSYSTEM,并改为显示当前时间,如下所示:

# PS1="$PS1"'\[\033[32m\]'       # change to green
# PS1="$PS1"'\u@\h '             # user@host<space>
PS1="$PS1"'\[\033[35m\]'       # change to purple
PS1="$PS1"'\D{%H:%M:%S} '      # show current time
# PS1="$PS1"'$MSYSTEM '          # show MSYSTEM

我个人认为时间是有用的,这样当我稍后回顾提示时,我可以看到运行前一个命令的时间,例如git fetch等。


由于某些原因,\W 对我不起作用,我必须使用 PS1="$PS1"'$(pwd)' # 当前工作目录 感谢 https://unix.stackexchange.com/a/430411/53125 - PAS

2

是的,在 .bashrc 文件中重置 PS1 环境变量即可。
像这样:

export PS1='\[\033[32m\]\u@\[\033[35m\]$MSYSTEM \[\033[33m\]\w\[\033[36m\]`__git_ps1`\[\033[0m\]\n$'

-10

这是你的电脑名称:

LAPTOP-7R9912OI MINGW6

在设置中搜索

'关于你的电脑'

并查找

重命名

在那里,你可以重命名你的电脑,并且应该会更改git-bash中的用户名。


3
重命名计算机可以改变Git Bash提示符的外观,但它会带来许多其他副作用,特别是如果你在一个域中。此外,如果您没有实际拥有/具有管理员访问权限的机器,则无法执行此操作,因此这不是一个有用的答案。 - Govind Parmar
计算机名称不是他们想要更改的唯一内容。而且"MINGW64"不是计算机名称的一部分。 - gre_gor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接