git wrapper: allow push to be recursively applied