Commit pending changes to git, optionally pushing after. Use when the user says 'commit', 'commit my changes', 'commit all', 'commit everything', 'save my work to git', 'stage and commit', or any variation of wanting to create a git commit. Accepts an optional 'push' keyword to push after committing, and optionally specific file names or a description of what to commit.