Repo Sync
Compare a source branch with a target branch and push only the difference.
- Skips files that are already identical
- Keeps the target’s history
- Optional mirror of deletions
Sync branches, deploy ZIP archives and clone repositories without dragging old history along. Everything runs inside your browser, talking straight to GitHub.
Pick the mode that matches what you have in hand. All of them finish with a single commit.
Compare a source branch with a target branch and push only the difference.
Unpack a ZIP in your browser and publish it to a new or existing repository.
Copy the current files of any repository into a brand-new one, with no history.
GitGhost uses GitHub’s Git Data API, the same building blocks Git itself uses, so nothing is cloned to disk.
It lists the file tree of the source and the target, then works out which files are new, changed or identical.
Only new or modified files are uploaded as blobs, a few at a time, with automatic retries and rate-limit waiting.
A single tree and commit are created, then the branch is updated. Any failure before this point leaves your repo untouched.
The token is sent only to api.github.com. There is no backend and nothing is logged anywhere else.
See exactly which files would be added, updated or deleted before you commit to anything.
Files upload concurrently and are skipped when their content hash already matches the target.
Network blips, server errors and GitHub rate limits are retried automatically with sensible waits.
Cancel a running job. Because the commit is the last step, a stopped run changes nothing.
Copy or download the full execution log for debugging or record keeping.
It stays in your browser and is only sent to GitHub’s API. If you leave “Remember me” ticked it is kept in local storage for one hour, then removed. For extra safety use a fine-grained token limited to the repositories you need, and revoke it when finished.
Classic tokens need the repo scope. Fine-grained tokens need Contents: read & write on the target, plus Administration: write if you want GitGhost to create repositories.
No. It copies the files from the latest commit of the chosen branch into a new repository and creates one fresh commit with no parents. Use Repo Sync if you want to add to existing history.
Only if you tick “Mirror deletions”. By default it adds new files and updates changed ones, leaving everything else alone.
Browsers can only fetch files from servers that allow cross-origin requests. If yours doesn’t, download the ZIP to your device and drop it into the upload box instead.
Single files above 50 MB are skipped and reported as errors. Very large repositories may be truncated by GitHub’s tree listing, and GitHub’s API allows 5,000 requests per hour, so huge jobs can take a while. GitGhost waits automatically if it hits the limit.