| 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, subject to fair use |
| Free LFS storage allowance | Varies — some hosts include more free LFS storage than UnityFreak does | 2 GiB on Free (25 GiB Pro, 100 GiB Team); more storage is $2/mo per 25 GiB. See the Large Files guide for a dated comparison |
| 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 sold or used to train the host’s AI models | Varies — read the terms | Never — 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 (subject to fair use) 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.
Your code is never sold and never used to train UnityFreak's own AI models. It is scanned only as needed to run and secure the service (for example, malware scanning and automated safety checks on uploads). 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, subject to fair use; never sold or used to train our AI models; 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 an authenticated connection — your credentials are used only for the import, are kept encrypted for at most 6 hours, and are never stored in our database.
LFS objects follow in the background
Git history imports in one step. Any Git LFS objects the repository uses are then fetched by a background job that starts automatically (private sources included, using the same credentials over https). The repository shows Git ready, LFS copying, then Complete — or Partial with exactly what could not be copied — so you know when it is safe to switch over.
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 an authenticated connection — your credentials are used only for the import, are kept encrypted for at most 6 hours, and are never stored in our database.
LFS objects follow in the background
Git history imports in one step. Any Git LFS objects the repository uses are then fetched by a background job that starts automatically (private sources included, using the same credentials over https). The repository shows Git ready, LFS copying, then Complete — or Partial with exactly what could not be copied — so you know when it is safe to switch over.
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 an authenticated connection — your credentials are used only for the import, are kept encrypted for at most 6 hours, and are never stored in our database.
LFS objects follow in the background
Git history imports in one step. Any Git LFS objects the repository uses are then fetched by a background job that starts automatically (private sources included, using the same credentials over https). The repository shows Git ready, LFS copying, then Complete — or Partial with exactly what could not be copied — so you know when it is safe to switch over.
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.