Before You Start
Make sure you have:- Entire installed
- access to clone the GitHub repository you want to mirror
- the Entire GitHub App authorized for the repository
entire/unmirrored/ stay in one Entire region and do not sync to GitHub.
Log In
Log in with the Entire CLI:Inspect Repositories and Mirrors
List repositories that your login can access:--mirrored to show existing mirrors or --available to show GitHub repositories that do not have a mirror placement yet.
Inspect one repository and its placement on each cluster:
ready, processing, or failed.
Create the Mirror
Run the add command with no arguments:Script the Mirror Creation
To create one placement without repository prompts, pass the repository and, optionally, its cluster host:/gh/OWNER/REPO reference. A bare owner/repo and a GitHub URL are both refused, with a message telling you the /gh/ spelling to use instead. If you omit --cluster, an interactive terminal offers the available clusters as a multi-select. A non-interactive run defaults to aws-us-east-2.entire.io. For several regions at once, repeat --cluster or comma-separate the hosts.
The command waits until the initial clone from GitHub is available, then prints a table of repository, region, status, and clone URL, followed by the git clone command for it.
Creating a mirror is idempotent for a given repository and region: rerunning the command returns the existing mirror. To return as soon as the mirror is registered instead of waiting for the initial clone, pass --no-wait.
Clone the Mirror
Clone by repository path:aws-us-east-2.entire.io and errors if it is not placed there. Select a cluster explicitly with --cluster:
entire:// URL. Because the URL already names a cluster, Entire passes it to git clone without a placement lookup.
Use the Mirror in an Existing Checkout
From the existing GitHub checkout, run:--cluster to choose either way.
This adds entire alongside origin and leaves origin on GitHub. To send everyday Git commands through the mirror, repoint origin instead:
--override, the same way git remote add behaves. With --override, Entire prints the URL it replaced, credentials redacted, and that printout is the only record of it.
This command only edits the current checkout’s Git configuration. The server-side mirror must already exist.
Push through the Mirror
Push through the mirror remote with normal Git commands:origin instead if you repointed it with --override.
Entire forwards the push through the mirror to the upstream GitHub repository. Your GitHub write access, branch protection rules, and required checks still apply.
Push an Unmirrored Branch
Branches whose names start withentire/unmirrored/ are never forwarded to GitHub. The branch stays in the mirror’s Entire region, so pushes to it are not subject to GitHub’s push rate limits. See Entire-Native Branches for when to use them.
Create and push an unmirrored branch with normal Git commands:
entire:// remote.
When you want the work on GitHub, push the same commits to a branch name outside the prefix:
Raw Git Fallback
Use raw Git commands when you need to manage the remote configuration yourself. Git invokesgit-remote-entire for entire:// remotes.
Clone from a known placement URL:
origin:
origin and add a separate remote:
git-remote-entire diagnostics.
Remove the Mirror
When you no longer need the mirror, remove the server-side mirror placement:--cluster.
Removing a mirror does not delete or rewrite the GitHub repository. It also does not change any local Git remotes you configured in .git/config.
Continue With
Mirror a GitHub Repository
Follow the end-to-end tutorial for creating, cloning, pushing through, and restoring a mirror.
Mirrors in entire.io
Configure GitHub access and choose repositories from the web interface.
Mirror Access and Permissions
Understand GitHub-synced access, hourly collaborator sync, and offboarding.
Troubleshooting
Fix missing repositories, app access, clone, fetch, and push issues.