libstatus is (a toolkit for building) a supercharged, POSIX-compliant
replacement of git status.
The functionality is implemented in the libstatus.sh file, which serves as
a library intended to be sourced by some other script.
One example script, git-repo-status, using all of the features library is
provided. Check it out. Running git repo-status -h will print help, but most
likely you'll just run the command without any arguments and it'll figure stuff
out for you.
Typing git repo-status over and over again will quickly get boring, so you'll
probably want to define an alias for it.
I personally use git-repo-status daily, and it probably fulfills your needs
as well. To use it, you need to make sure it's available in your $PATH.
Configuring the $PATH variable is out of scope of this README, but there's
plenty information online.
If the provided script doesn't suit you, I encourage you to hack it to your
liking. Note that if git sees a git-foo file in your path, you can execute it
without typing the dash, just git foo.
Currently implemented features:
- working directory status (using
git status --shortcondensed output; seegit help statusfor more info),
- graph of commits on your branch and its tracked remote counterpart,

- graph of commits on your branch and the branch it'll be merged to (using
<remote>/HEADto guess, can be overridden),
- list of stashes along with listing of their changes,

- worktree summary,

- submodule status and summary,
- rebase progress status,

- hints about remote branch tracking, merges lost when rebasing without
--rebase-merges, and about files lost from tracking due to reset without--intent-to-add.
