我正在尝试制作一个小工具(可能已经存在)来帮助处理来自终端的存储库和分支。
基本上,我们的想法是在提示符中包含分支的名称(类似于虚拟环境,它也会在提示符中显示当前环境)。
以下命令只提取我当前所在分支的名称。
git branch | grep "*" | cut -c3-
将此包含在我的.bashrc文件中以修改PS1
工作,但只在控制台打开时更改提示。
我想每次更改文件夹cd my_folder
,cd ..
时更新提示,所以如果我去另一个存储库,它会更新分支。
所以我为cd
创建了一个别名,现在在执行cd
后附加这个小脚本。
但是,如果我使用git
更改分支,因为我没有更改文件夹,提示不会立即更新。
我也可以为git创建一个别名,但我的印象是我改变了太多的东西,也许这已经存在了。
为了避免重新发明轮子,这已经存在了吗?使用它是个好主意吗?
谢谢
在〜/ .bashrc中添加此代码。添加后别忘了使用source命令。
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存储库中,然后使用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文件中。
试试这个
=>按如下方式克隆存储库
git clone --depth=1 https://github.com/Bash-it/bash-it.git ~/.bash_it
=>安装它
~/.bash_it/install.sh
=>重新打开终端