| Feature | Most Hosted Git Providers | RecommendedUnityFreak |
|---|---|---|
| Private repositories | Yes, typically | Yes — on every plan, including Free |
| Pull requests & code review | ||
| Merge governance — required approvals, CODEOWNERS, stale-approval dismissal, required status checks | Varies — often split across paid tiers | Yes — configurable per repository |
| Branch protection | Yes, typically | |
| Git LFS with unmetered bandwidth | Usually metered, or sold in data packs | Yes — unmetered LFS bandwidth on every plan |
| LFS file locking | Varies by provider | |
| HTTPS & SSH transport | ||
| Webhooks | ||
| Releases | ||
| API keys / PATs for CI status posting | Yes, typically | Yes — a familiar commit-status API external CI can post to |
| Native PM integration — task-linked commits & PRs | Typically none — a separate PM tool is required | Yes — commits and PRs link directly to the task that closes them |
| Git-history import via URL | Varies — often a paid migration service | Yes — import any Git repository by URL, full history included |
| What actually migrates on import | Varies by provider | Git history only — issues, PRs, and branch rules do not migrate |
| Built-in CI runners | Yes, usually | No — external CI reports status via the commit-status API |
| Package / container registry | Yes, usually | No built-in package or container registry |
| Dependency, secret & code scanning | Yes, usually | No built-in scanning — bring your own via external CI |
| Your code scanned, sold, or trained on | Varies — read the terms | Never — not on any plan |
| A big pull on the last day of the month | Check your bandwidth budget first | Pull. That is the entire process. |
| Migrating out | The clone works; LFS objects, releases, and metadata are another matter | Full clone, full history, standard git — leaving is a remote URL change |
| Per-seat pricing | Varies by provider and plan | Pro from $12/seat/mo billed annually ($15/seat monthly) — Team $20/seat/mo |
Required approvals, CODEOWNERS enforcement, stale-approval dismissal, and required status checks — configurable per repository, not bolted on after the fact.
Large files stay usable. Unmetered LFS bandwidth is included on every plan, alongside file locking so binary assets do not get clobbered by concurrent edits.
Commits and pull requests connect directly to the task they close. Trace any change back to the work that drove it, without switching tools.
Not mined for AI training data, not sold to third parties, and not scanned beyond what keeping the service running requires. Every plan, including Free.
What happens to my LFS bandwidth when I pass the quota? If the answer involves buying packs, metered billing, or throttling, price that in — per month, per seat, per CI run.
Do the terms let the host scan my code or train models on it? Don't accept "we take privacy seriously." Look for the sentence that says what they don't do.
What does leaving cost? Full history, LFS objects, and metadata should be a git clone away. If exit is hard, entry should be too.
Our answers: unmetered bandwidth on every plan; never scanned, sold, or trained on; standard git, full history, leave any afternoon you like.
The same three-step flow works from any git host — only where you generate a token changes. Only Git history and LFS objects move; issues, pull/merge requests, and branch rules stay on your old host.
Generate a personal access token
GitHub → Settings → Developer settings → Personal access tokens. A token scoped to read the repository is enough.
Import by URL
Paste the repository's clone URL and the token above into Import Repository. UnityFreak mirror-clones the full Git history over a one-time authenticated connection — your credentials are used once and are never stored.
LFS objects transfer automatically
Any Git LFS objects the repository uses come across as part of the same import — no separate upload step.
Point your local clone at the new remote
git remote set-url origin https://unityfreak.com/you/your-project.git — push and pull keep working exactly as before.
Generate a personal access token
GitLab → User Settings → Access Tokens, with the read_repository scope.
Import by URL
Paste the repository's clone URL and the token above into Import Repository. UnityFreak mirror-clones the full Git history over a one-time authenticated connection — your credentials are used once and are never stored.
LFS objects transfer automatically
Any Git LFS objects the repository uses come across as part of the same import — no separate upload step.
Point your local clone at the new remote
git remote set-url origin https://unityfreak.com/you/your-project.git — push and pull keep working exactly as before.
Generate an app password
Bitbucket → Personal settings → App passwords, with Repositories: Read permission.
Import by URL
Paste the repository's clone URL and the token above into Import Repository. UnityFreak mirror-clones the full Git history over a one-time authenticated connection — your credentials are used once and are never stored.
LFS objects transfer automatically
Any Git LFS objects the repository uses come across as part of the same import — no separate upload step.
Point your local clone at the new remote
git remote set-url origin https://unityfreak.com/you/your-project.git — push and pull keep working exactly as before.
UnityFreak doesn't run your builds, and switching doesn't mean switching CI systems. Whatever already runs your builds keeps running them — it just posts pass/fail to a familiar commit-status API, and required status checks gate the merge on it, the same way they already gate on required approvals and CODEOWNERS.
See CI setup recipesCreate your free account in 30 seconds. No credit card required.