entire:// URL.
This tutorial shows how to create a mirror, use it with Git, and switch your local checkout back to GitHub if you need to.
For a shorter command-line guide, see Mirrors in CLI.
Prerequisites
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
Log In
Log in with the Entire CLI:Check GitHub Access
Before you create or push through a mirror, confirm that the Entire GitHub App can access the repository.- Open GitHub installed apps.
- Find Entire.
- If GitHub shows Permission updates requested, click Review request and approve the update.
- Click Configure for Entire.
- Choose All repositories or select the repository you want to mirror, then click Save.
Create the Mirror
Choose the GitHub repository you want to mirror:/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. When more than one cluster is available, an interactive terminal offers them as a multi-select. A non-interactive command defaults to aws-us-east-2.entire.io. Entire waits until the initial GitHub clone is available.
To create the mirror in another region, name the cluster with --cluster:
git clone command for it.
Inspect the repository and its regional placements:
Clone the Mirror
Clone by repository path:aws-us-east-2.entire.io and errors if the mirror is not placed there. Pass --cluster to choose either way:
Use the Mirror in an Existing Checkout
From an existing GitHub checkout, let Entire add the remote:aws-us-east-2.entire.io and errors if the mirror is not placed there. Pass --cluster to choose either way.
This leaves origin on GitHub and adds entire alongside it. To send everyday Git commands through the mirror instead, repoint origin:
--override is required for a name that already exists; without it the command refuses rather than repointing. Entire prints the URL it replaced, with credentials redacted, and that printout is the only record of it.
These commands only update the local checkout. They do not create or delete a mirror placement.
Verify the Mirror
Fetch through the mirror:entire remote uses an entire:// URL, with origin still on GitHub:
origin with --override instead, plain git fetch goes through the mirror and origin is the entire:// URL.
Push through the Mirror
Create a test branch, make a small change, then stage and commit it:origin here 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.
Restore the GitHub Remote
If you repointedorigin with --override, set it back with plain Git:
origin alone:
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.
Troubleshooting
Unknown Command "repo"
Unknown Command "repo"
Your
entire binary may be older than the mirror commands. Update Entire, then try again.403: Write Access to Repository Not Granted
403: Write Access to Repository Not Granted
If Do not use
git push reaches the Entire mirror but GitHub rejects the forwarded push, check the Entire GitHub App permissions.Open GitHub installed apps, find Entire, review any pending permission update, and make sure the app can access the repository you mirrored.Then refresh your Entire login:entire logout to refresh: it drops every saved login and ends your CLI sessions on other machines too.Mirror Creation Takes a While
Mirror Creation Takes a While
By default
entire repo mirror add waits for the initial clone to appear on Entire. For large repositories, that can take time.If you only need to register the mirror and check back later, use --no-wait:Cloning a Mirror with LFS Files Fails During Checkout
Cloning a Mirror with LFS Files Fails During Checkout
Mirrors do not currently support Git LFS. If the repository uses LFS, cloning the mirror fails during checkout with a See Git LFS for more detail.
smudge filter lfs failed error.As a workaround, point Git LFS at GitHub so that large file transfers go through GitHub, while regular Git operations keep using the mirror:Git Cannot Reach the Mirror
Git Cannot Reach the Mirror
If Git cannot reach the If it keeps failing, see
entire:// remote, confirm the placement and retry through the Entire CLI:git-remote-entire Diagnostics.