A shell script that formats pretty git sync and dirty status for shell prompt

bill-auger 67dc6af810 warn about new 'unsafe repository' error 2 lat temu
data 3a3c3c0cf2 add screenshot 2 lat temu
.gitignore bad322ee8b add blacklist feature 2 lat temu
LICENSE 0f895e899b upgrade license to AGPLv3 2 lat temu
README.md bad322ee8b add blacklist feature 2 lat temu
git-status-prompt.sh 67dc6af810 warn about new 'unsafe repository' error 2 lat temu

README.md

git-status-prompt.sh - pretty format git sync and dirty status for shell prompt

git-status-prompt screenshot

FORMAT:
  (branch-name status-indicators [divergence]) last-commit-date last-commit-message
    where:
      '*' character indicates that the working tree differs from HEAD (per .gitignore)
      '!' character indicates that some tracked files have changed
      '?' character indicates that some new or untracked files exist
      '+' character indicates that some changes are staged for commit
      '$' character indicates that a stash exists
      [n<-->n] indicates the number of commits behind and ahead of upstream

USAGE:
  # ~/.bashrc
  source /path/to/git-status-prompt/git-status-prompt.sh
  PS1="\$(GitStatusPrompt)"

  # this script can be sluggish in repos with a large number of commits
  # such directories may be listed in a file named 'ignore_dirs' to avoid processing