Bring an existing Git repository onto UnityFreak by URL — full history included.
Importing a repository mirror-clones its full Git history — every commit, branch, and tag — directly from the source URL you provide. That history is exactly what you get: a complete, working clone you can push and pull from immediately.
What does not come across is anything that lives outside the Git history itself: issues, pull or merge requests, and branch protection rules all stay on your old host. If you rely on any of those, plan to recreate the ones you still need on UnityFreak — there is no automated migration for them today.
Even for a public repository, generating a token avoids the source host's anonymous rate limits during the clone. For a private repository, it's required. A token scoped to read-only access is all the import needs.
GitHub → Settings → Developer settings → Personal access tokens. A token scoped to read the repository is enough.
GitLab → User Settings → Access Tokens, with the read_repository scope.
Bitbucket → Personal settings → App passwords, with Repositories: Read permission.
From Repositories → Import Repository, fill in:
https://host/owner/repo.git).If the source is private, check "This is a private source (requires credentials)" and enter the username and the token you generated above as the password. Those credentials are used once, to perform the clone, and are never stored — only the repository's URL (with credentials stripped) is kept on the import record.
Point your local clone at the new remote and keep working exactly as before:
git remote set-url origin https://unityfreak.com/{owner}/{repo}.gitPush and pull continue working exactly as they did against the old host — nothing else about your local workflow changes.
The import only carries over Git history synchronously — the initial clone contains LFS pointer files, not the LFS bytes themselves. A backfill job kicks off automatically right after the import completes to fetch those objects from the original source. You can watch its status — not started, pending, running, completed, or failed — from the repository's Settings → LFS tab, which also lets an admin manually retry the fetch with a "Fetch LFS objects" button if it ever needs a nudge.