Make the no-commit-Id deployment more similar to the commit-id case

Also, fix bug that shows the commit ID instead of the branch name when pushing.
Simplify ProgressWriter pattern, and use it during git checkout