A listview showing all unstaged/untracked files with their status (new, modified, deleted, renamed) You then can select one, several or all files and stage them.
A second listview shows all staged files with their status (staged, modified). Again you can select one, several or all files and commit (and optionally push) them. Or unstage them.
Situations, where a file is both staged and unstaged at the same time, are also handled.
There will also be a function for casual users to stage, commit (and optionally push) all changes at once.
If there is time, I also intend to offer the possibility to set a file back to its initial (unmodified) state. Technically revert it back to HEAD revision.