training GIT commit - stage remote vs origin push, pull, fetch merge vs rebase reset hard/soft cherry-pick rebase interactive stash Github Graph commit review pull request CI work organization repo static code analysis tests migrations