gitzshcommand-promptoh-my-zshgit-status

What do characters like !1 at the end of my Powerlevel10k prompt mean?


I'm using Oh My Zsh with the Powerlevel10k theme.

I've installed the recommended fonts directly from the Powerlevel10k docs, updated the settings for fonts in Terminal, iTerm2, and VS Code according to the docs, and it mostly works, except that there is always some unexpected character at the end of the prompt (usually !1 or !2). I've found nothing in the docs, searches of forums, or internet searches that helps with this so far.

screenshot of prompt, end with develop !1 What does the !2 after the branch name (develop) in the git status part of the prompt mean?

Any hints that could help me resolve this, even just the right search term to help me find answers would be much appreciated.


Solution

  • From the Powerlevel10k FAQ:

    Q: What do different symbols in Git status mean?

    When using Lean, Classic or Rainbow style, Git status may look like this:

    feature:master wip ⇣42⇡42 ⇠42⇢42 *42 merge ~42 +42 !42 ?42
    
    Symbol Meaning Source
    feature current branch; replaced with #tag or @commit if not on a branch git status --ignore-submodules=dirty
    master remote tracking branch; only shown if different from local branch git rev-parse --abbrev-ref --symbolic-full-name @{u}
    wip the latest commit's summary contains "wip" or "WIP" git show --pretty=%s --no-patch HEAD
    = up to date with the remote (neither ahead nor behind) git rev-list --count HEAD...@{upstream}
    ⇣42 this many commits behind the remote git status --ignore-submodules=dirty
    ⇡42 this many commits ahead of the remote git status --ignore-submodules=dirty
    ⇠42 this many commits behind the push remote git rev-list --left-right --count HEAD...@{push}
    ⇢42 this many commits ahead of the push remote git rev-list --left-right --count HEAD...@{push}
    *42 this many stashes git stash list
    merge repository state git status --ignore-submodules=dirty
    ~42 this many merge conflicts git status --ignore-submodules=dirty
    +42 this many staged changes git status --ignore-submodules=dirty
    !42 this many unstaged changes git status --ignore-submodules=dirty
    ?42 this many untracked files git status --ignore-submodules=dirty
    the number of staged, unstaged or untracked files is unknown echo $POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY or git config --get bash.showDirtyState

    See also: How do I change the format of Git status?