我正在使用内置的git提示符shell脚本来改进我的Bash提示符。
. ~/git-completion.bash
. ~/git-prompt.sh
export GIT_PS1_SHOWDIRTYSTATE=1
export GIT_PS1_SHOWUNTRACKEDFILES=1
export GIT_PS1_SHOWUPSTREAM="auto"
export GIT_PS1_SHOWCOLORHINTS=1
我有一个庞大的企业应用程序存储库(成千上万的文件,非常深的目录树,.git
目录几乎为2 GB)。提示需要很长时间才能完成。
有什么方法可以告诉git-prompt.sh
您忽略此工作空间吗?是通过标志还是在我的.bashrc
?
Jubobs的答案让我开始思考...我想测试大型存储库可以满足的某些条件。我不想将自己限制在一个存储库中。我需要它可以在这些存储库的所有子目录中工作。
我探索了git
命令本身。在目录树中搜索.git
文件夹需要做很多工作。例如,如果您在git repo中,则此命令将退出0,否则将退出非零。
$ git rev-parse --git-dir &>/dev/null
那很整洁,但还不够。我想知道我是否在git repo中并忽略提示。但是,我不想结合复杂的条件。然后我考虑使用自定义git config键。
$ git config --local prompt.ignore 1
我可以运行此测试以查看它是否为非空。我应该弄清楚如何测试0或空与非空,但这只是一个开始。
$ [[ -z $(git config prompt.ignore) ]]
那是所有功能中最好的。我可以将其添加到任何回购中。它参与“这是git repo吗?” 一键发现并回答提示忽略问题!
我把它烤成.bashrc
这样
function __my_ps1 {
if [[ -z $(git config prompt.ignore) ]];
then
__git_ps1 "$PROMPT_PRE" "$PROMPT_POST"
fi
}
export PROMPT_COMMAND=__my_ps1
我正在使用Windows版Git包中的Git Bash提示符,它已经有一个非常友好的提示符。我想知道是否需要else
在任何其他Shell中为该提示命令提供一个分支。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句