【问题标题】:Automatic display of git status in Linux bashLinux bash 中自动显示 git 状态
【发布时间】:2017-10-29 10:53:28
【问题描述】:

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

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

【问题讨论】:

  • Bash-它将 repo 状态添加到您的 shell 提示符中,可能还有其他工具可以这样做。但是这里的工具推荐是题外话。
  • 如果您的问题是您需要获取或安装什么其他外壳或工具才能获得此状态,那么这个问题是题外话。如果您的问题是如何配置 bash 以显示这一点,那么 Super User 可能 是一个更好的地方。由于涉及git,它可能也很适合这里。现在这个问题有点分散。
  • @LasseV.Karlsen 啊,到目前为止我还不认识 SuperUser。你能移动一下问题吗?
  • 说明可以在git-sh-prompt文件中找到,例如less /usr/lib/git-core/git-sh-prompt(至少在 ubuntu 20.04 上)

标签: git bash git-shell


【解决方案1】:

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

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

【讨论】:

  • 谢谢,这至少起到了部分作用。现在,显示当前分支。看到这个可以进一步定制,等我找到了在windows中重现信息的方法(有没有颜色),我就贴在这里。
  • 有一个小缺点:在将上面发布的代码添加到“.bashrc”之前,bash 总是在每行的开头显示“USERNAME@COMPUTER:~$”。之后它只显示“~$”。对我来说很好,虽然我不明白为什么会这样。
  • @DaRealHonk:谷歌自定义了 bash 提示符,你也可以将其他东西放入 PS1 变量中。
  • git-prompt.sh 文件在哪里?
  • 我怎样才能同时为文件夹着色?
【解决方案2】:

TL;在 Ubuntu 20.04.1 上的 DR

将此添加到您的~/.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)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[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)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

所以你可以通过在末尾添加 git 状态来增强它:

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

【讨论】:

    【解决方案3】:

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

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

    我相信通过更多搜索,您可以在 Unix/Linux 中进行提示,以准确查看您的要求。

    【讨论】:

    • 不,我不是这个意思。我希望获得有关当前 git repo 的更多信息,而不仅仅是为我已经拥有的内容添加颜色。但无论如何,谢谢,也许我会在使用@gauteh 的解决方案后为我的 bash 着色。
    猜你喜欢
    • 1970-01-01
    • 2013-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 2020-02-17
    • 2021-09-12
    • 2020-02-07
    相关资源
    最近更新 更多