Creates, updates, or deletes repository files in a commit, with retries for non-fast-forward branch updates; a new branch in a nonempty repository requires a base branch. Empty repository initialization creates separate commits per file and may also write an initialization file t…