git-rev-parse: re-organize and be more careful