在Linuxbash中自动显示git状态

Automatic display of git status in Linux bash

我开始在 Windows 系统中使用 git。我使用了 Git Desktop 附带的 Git Shell。此命令行工具始终显示您当前所在的分支以及 git 状态的简短彩色形式(未跟踪文件数、已更改文件数、已删除文件数)。我发现这真的很方便。

现在我把我的系统完全改成了Linux,但我没有发现任何类似的东西。有没有办法像 Windows Git Shell 一样教 Linux bash 显示分支和状态?我目前正在使用 Xubuntu (16.04) 终端。

根据 GIT-SCM book,假设您使用的是 bash,您可以使用 git 或您的其他包管理器提供的 git-prompt.sh 脚本发行版。

. ~/git-prompt.sh
export GIT_PS1_SHOWDIRTYSTATE=1
export PS1='\w$(__git_ps1 " (%s)")$ '

我明白你的意思。在 Windows 中,安装 Git 后,您将获得 Git Bash Here。当您启动它时,将出现一个终端并且提示符将有颜色。 [我看到的提示是:username@machine MINGW32 /C/Working/GitTutorial (master)。 username@machine 为绿色。 MINGW32 为紫色。路径为黄色。树枝是蓝色的。]

现在如果你的系统是Unix/Linux,是的,当你打开终端时,你可以让颜色有颜色。只需 Google 并找到 'bash prompt',我得到 https://wiki.archlinux.org/index.php/Bash/Prompt_customization

我相信通过更多的搜索,您可以使 Unix/Linux 中的提示看起来正是您要问的。

TL;DR Ubuntu 20.04.1

将此添加到您的 ~/.bashrc:

source /etc/bash_completion.d/git-prompt
export GIT_PS1_SHOWDIRTYSTATE=1
export PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]\w\[3[00m\]$(__git_ps1 "(%s)")$ '

详情

此答案适用于想要增强 Ubuntu 20.04.1.

提供的原始提示的人

shell 由 git-core 包提供

source /etc/bash_completion.d/git-prompt
当前状态修改时需要

export GIT_PS1_SHOWDIRTYSTATE=1显示

初始提示为:

export PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]\w\[3[00m\]$ '

因此您可以通过在末尾添加 git 状态来增强它:

export PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]\w\[3[00m\]$(__git_ps1 "(%s)")$ '