Ant*_*ean 5 git bash .bash-profile git-bash
我正在使用内置的git prompt 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
Run Code Online (Sandbox Code Playgroud)
我有这个庞大的企业应用程序存储库(成百上千个文件,一个非常深的目录树,.git目录几乎有 2 GB)。提示需要很长时间才能完成。
有没有办法告诉git-prompt.sh忽略这个工作区?无论是通过标志还是在我的.bashrc?
Jubobs 的回答让我思考......我想测试大型存储库能够满足的某些条件。我不想将自己限制在一个存储库上。我需要它在这些存储库的所有子目录中工作。
我探索了git命令本身。它做了很多工作来在目录树中搜索文件夹.git。例如,如果您位于 git 存储库中,则此命令将退出 0,否则将退出非零。
$ git rev-parse --git-dir &>/dev/null
Run Code Online (Sandbox Code Playgroud)
这很整洁,但还不够。我想知道我是否在 git 存储库中并忽略了提示。但是,我不想组合复杂的条件。然后我考虑使用自定义 git config key。
$ git config --local prompt.ignore 1
Run Code Online (Sandbox Code Playgroud)
我可以运行这个测试来看看它是否非空。我应该弄清楚如何测试 0 或空与非空,但这是一个开始。
$ [[ -z $(git config prompt.ignore) ]]
Run Code Online (Sandbox Code Playgroud)
它具有所有功能中最好的功能。我可以将其添加到任何存储库中。它参与“这是一个 git 存储库吗?” 发现并回答提示忽略问题,一切合二为一!
我把它烤成我.bashrc喜欢的样子
function __my_ps1 {
if [[ -z $(git config prompt.ignore) ]];
then
__git_ps1 "$PROMPT_PRE" "$PROMPT_POST"
fi
}
export PROMPT_COMMAND=__my_ps1
Run Code Online (Sandbox Code Playgroud)
我正在使用 Git for Windows 包中的 Git Bash 提示符,它已经有一个非常友好的提示符了。我想知道是否需要else在任何其他 shell 中为该提示命令提供一个分支。
| 归档时间: |
|
| 查看次数: |
1054 次 |
| 最近记录: |