Checked against
- Gitea documentation: repository migration: unpinned (current docs on 2026-10-29) [gitea-migration]
- git remote set-url: unpinned (current git documentation) [git-remote]
Before you start
- A running Gitea instance and an account on it that may create repositories.
- Read access to the GitHub repositories you want to move.
Plan what moves
Git history moves with any migration. Gitea's documentation says that to migrate items such as issues and pull requests from GitHub you need to enter at least your username in the migration form. List the repositories and decide per repository whether those items should come along.[gitea-migration]
The old standalone tool gitea/migrator is archived; its README points to the "New migration" menu in Gitea instead.[migrator]
Run the migration in Gitea
- In Gitea, open the "New migration" menu and choose GitHub as the source.
- Enter the repository's clone URL and the credentials the form asks for (at least your username if issues and pull requests should come along).
- Select the items to migrate and the owner and name of the new repository, then start the migration.
- When it has finished, compare branches, tags and a sample of issues with the GitHub original.
Point local clones at Gitea
git remote set-url origin <newurl>Not covered by this guide
- CI pipelines (GitHub Actions workflows) and their secrets: check how your Gitea instance runs CI before switching.
- Integrations, webhooks and apps installed on the GitHub organisation.
- Installing and hardening Gitea itself (see the Gitea hardening guide).
Sources
- Gitea documentation: migration from other services (retrieved 2026-10-29)
- gitea/migrator README (archived) (retrieved 2026-10-29)
- git-remote documentation (retrieved 2026-10-29)