In-place progress output in the terminal or console
... eol = done ? done : " \r";... fprintf(stderr, "...%s", ..., eol); fflush(stderr);
Git simply emits a carriage return and no line feed, which the terminal interprets as "move to first column".
You'll have to use another method (like Curses) to update two lines in-place.
ablogaboutcode.com | web.archive.org
...and...
http://www.ruby-doc.org/stdlib-1.9.3/libdoc/curses/rdoc/Curses.html