【问题标题】:current git branch in terminal prompt终端提示符中的当前 git 分支
【发布时间】:2018-05-31 15:54:34
【问题描述】:

我正在尝试制作一个小工具(也许它已经存在)来帮助从终端处理存储库和分支。

基本上思路是在提示中加上分支的名称(类似于虚拟环境,也在提示中显示当前环境)。

以下命令只是提取我​​当前所在的分支的名称。

git branch | grep "*" | cut -c3-

将其包含在我的 .bashrc 文件中以修改 PS1 有效,但仅在控制台打开时更改提示。

我想在每次更改文件夹cd my_foldercd .. 时更新提示,所以如果我转到另一个存储库,它会更新分支。

所以我为cd 创建了一个别名,现在它在执行cd 后附加了这个小脚本。

但是,如果我使用 git 更改分支,因为我没有更改文件夹,提示不会立即更新。

我也可以为 git 创建一个别名,但我觉得我改变了太多东西,也许这是已经存在的东西。

为了避免重新发明轮子,这是否已经存在?使用它是个好主意吗?

谢谢

【问题讨论】:

标签: git terminal git-branch


【解决方案1】:

将此代码添加到 ~/.bashrc 中。添加后不要忘记使用源命令。

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

希望这会有所帮助。

【讨论】:

  • 这仅适用于当前分支。如果您git checkout anotherbranch,它将不会在终端中显示另一个分支。相反,它仍然显示旧的。
【解决方案2】:

将这些代码行添加到您的 ~/.bashrc 或 .bash_profile 文件中

  1. 打开终端。并在终端中转到您的主目录 (用〜表示)。您可以使用cd 转到主目录 命令并在终端中按回车键。
  2. 现在您输入 la 并查看 .bashrc 或 .bash_profile 是否存在。
  3. 现在使用sudo nano .bashrc打开任何文件(在这里你可以使用 .bashrc 或 .bash_profile)。我在这里使用 .bashrc 文件

现在您的 nano 编辑器会提示,按向下箭头键转到 nano 编辑器的底部,然后将以下代码行粘贴到文件末尾。

# to add the git branch names
function parse_git_branch () {
  git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
 
RED="\[\033[01;31m\]"
YELLOW="\[\033[01;33m\]"
GREEN="\[\033[01;32m\]"
BLUE="\[\033[01;34m\]"
NO_COLOR="\[\033[00m\]"

# without host
PS1="$GREEN\u$NO_COLOR:$BLUE\w$YELLOW\$(parse_git_branch)$NO_COLOR\$ "
# with host
# PS1="$GREEN\u@\h$NO_COLOR:$BLUE\w$YELLOW\$(parse_git_branch)$NO_COLOR\$ "

现在按 Ctrl + s 保存文件,然后按 Ctrl + x 退出 nano 编辑器。

现在你已经完成了。

现在检查您的 git 存储库,它将显示带有彩色名称的分支名称。

参考文献

https://gist.github.com/danielalvarenga/2df8cabbd6f3041c2378

【讨论】:

    【解决方案3】:

    首先是检查你是否在Git仓库中,然后用symbolic-ref命令解压:

    function gitbranch
    {
        if git rev-parse --git-dir &>/dev/null; then
            printf "%s" "[$( git symbolic-ref HEAD --short )]"
        fi
    }
    export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(gitbranch)\[\033[00m\] $ "
    

    将其添加到您的 .bashrc 文件中。

    【讨论】:

      【解决方案4】:

      试试这个

      => 如下克隆 a 存储库

      git clone --depth=1 https://github.com/Bash-it/bash-it.git ~/.bash_it
      

      => 安装它

        ~/.bash_it/install.sh
      

      => 重新打开终端

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-05-20
        • 2010-11-27
        • 2010-11-20
        • 2018-12-03
        • 1970-01-01
        • 2021-12-05
        相关资源
        最近更新 更多