See discusion in T8238. Currently, when we push changes to a staging area, git may do much more work than it needs to if no ancestor of HEAD is present in the remote.
This work does need to happen once (to push the actual history) but we can end up doing it much more often than we need to.
Although this tends to normalize over time, we can likely avoid this by finding the nearest merge-base of HEAD and any origin ref (or, slightly more simply, just using the base commit) and pushing it to some /base/ ref. This should generally reduce the amount of work required after the first push.