我可以根据所在的存储库有条件地激活Git提示吗?

安东尼·马斯特里安

我正在使用内置的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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我可以有条件地更改列表吗?

有条件地激活Material UI工具提示?

您可以根据布尔值有条件地分配类型吗?

在Powershell中有条件地注册存储库

我可以有条件地向我的knex查询添加where()子句吗?

argparse可以有条件地解析参数吗?

我可以在ARM模板中有条件地使用复制功能吗?

我可以有条件地提供特征函数的默认实现吗?

我可以有条件地选择要分配给哪个变量吗?

我可以有条件地使用passport-jwt吗?

我可以有条件地编译“ Select Case”吗?

在Pentaho Data Integration中,我可以有条件地输出吗?

我可以有条件地关闭某些 oh-my-zsh 插件吗?

我可以有条件地定义一个 openMP 并行区域吗?

我可以有条件地接管vscode扩展中的键绑定吗?

我可以有条件地替换列表中的值吗?

我可以通过可移植的方式有条件地在Makefile中定义宏吗?

我们可以有条件地调用 pytest 夹具吗?

我可以有条件地在开关上实现/放置数组吗?

我可以有条件的舍邦吗?

如何有条件地激活提交按钮?

我可以使用计算属性来有条件地对表格行进行样式设置吗?

我可以使用C预处理器有条件地检查宏的值吗?

我可以在AWS Appsync解析器中有条件地调用lambda函数吗?

我可以有条件地将语句打印到外部SAS程序文件吗?

我可以使用IF语句的CASE来有条件地运行其他SELECT语句吗?

我可以在应用程序的make文件中有条件地构建PC文件(Oracle Pro * c)吗?

根据PostgreSQL中的数据库版本有条件地构造模式

如何根据操作系统有条件地在Java中加载库?