我正在使用 fedora 操作系统,当我进入 git 文件夹项目时,我想在终端中显示 git 分支或标签。
我跟随本教程。我跑完之后:
source /usr/share/git-core/contrib/completion/git-prompt.sh
source ~/.bashrc
它很好地显示了 git 分支。但如果我跑:
cd .. #I go back the parent folder which is not git folder
它保留 git 分支。我该如何修复它?
答案1
不确定教程的行为是否有问题,但您可以自己轻松完成此操作。在您的中定义这样的别名.bashrc
:
# function for PS1 to display [ git branch] when it is defined
function __show_git_branch() {
branch=`git rev-parse --abbrev-ref HEAD 2>/dev/null`
test -n "$branch" && echo " [$branch]"
}
然后将 PS1 设置为如下所示:
PS1='-- $(__show_git_branch) \$ '
这将导致每次显示提示时都重新计算 git 分支。如果有错误,它会被发送到/dev/null
并且后续test
不会回显任何内容,因此如果您不在目录中,这将返回一个空字符串git
。
您没有问这个,但我将其作为“方便的提示”传递给您。知道您正在重新初始化会很有帮助一切使用bash
别名和环境变量时。执行此操作的一个简单方法是使用exec
:
exec bash
这将在当前运行的 shell 上重新启动 bash。如果您想像再次登录一样重新启动它,则exec bash -l
.
答案2
~/.bashrc
在您的或.bash_profile
文件中添加这些代码行
- 打开终端。并转到终端中的主目录(用 表示
~
)。您可以使用命令转到主目录cd
,然后在终端中按 Enter 键。 - 现在您输入
la
并查看 .bashrc 或 .bash_profile 是否存在。 - 现在使用打开任何文件
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