Removed unused commit parameter from _is_dirty() function
Moved gitric_allow_dirty check into _is_dirty() function
Replaced _get_commit() function by git_head_rev()
Use cd() context manager in git_reset() function
Check if commit exists, not if working directory is at commit

We don't need to push the commit if it is available in the remote repo
already. This is a relevant case when rolling back to a previous commit.
Added git_init() function

Only run 'git init' and config change if there is no .git directory yet
Moved commit and force assignments

We don't need to assign those if we abort() later on
Improved log messages
Improved code comments
Fixed flake8 issue
Renamed _is_dirty() function to git_is_dirty()