Transferring Repositories on GitHub
As described in my first post, I tried to use multiple accounts on GitHub. However, it appears that it was just an unnecessary complication. I have decided to use only a single GitHub account (for now) and transferred all the repositories of the new account to the old one. I will describe the process in this post.
My main GitHub account was akirak, which was actually created more than three years ago but had been inactive for most of the time. Then, I created another account named jingsik as a place for personal experiments. The former one was a free account, while the latter was a paid account. I created some private repositories in the new account and also set up a continuous integration for publishing my blog.
In order to migrate all
jingsik’s repositories to
akirak, I took the following steps:
akirakaccount to a paid account so that it can contain private repositories
- Transfer all repositories owned by
jingsikaccount to free
- I have also reconfigured the continuous integration of my blog on Netlify
Log in to GitHub as the old (destination) account and upgrade it to Developer plan, which supports unlimited private repositories.
GitHub provides an instruction for transferring a repository owned by a personal account and documentation about repository transfers. Basically, you just have to follow the tutorial.
Log in to GitHub as the new (source) account.
Visit Settings of a repository to transfer. At the bottom of the initial page, there is Danger Zone section and Transfer button in it. Press it.
A confirmation dialog appears. Enter the name of the repository and the login name of the destination account.
You will receive a confirmation e-mail from GitHub as follows. You have to open the link contained in it.
After the repository is transferred, you can see the transferred repository prefixed by the destination user (
demo-private-repository in the screenshot).
Repeat the steps above on all repositories owned by the source account. After transferring all the repositories, they are prefixed by the destination user.
Stay logged in as the source account. Downgrade it to a free account. I downgraded in the middle of a billing month, but I could receive a refund, so I virtually didn’t have to pay for the rest of the month:
Effect of account migration
Now I can access all the repositories created by
jingsik, the source user, just in the same way. Issues created by
jingsik seem to be still owned by
jingsik itself. Issues are intact. It doesn’t suffer in case of private repositories though.
Continuous integration by Netlify
If you have a repository for continuous integration, you also have to reconfigure its setting. I had a blog repository linked by Netlify, so I had to reconfigure it. I just logged in to Netlify and relinked the repository in the settings. Now my blog is automatically rebuilt every time I push changes to the repository.
Everything seems to work as expected. It is much simpler to use a single GitHub account.