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.

Overview

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:

  1. Upgrade akirak account to a paid account so that it can contain private repositories
  2. Transfer all repositories owned by jingsik to akirak
  3. Downgrade jingsik account to free
  4. I have also reconfigured the continuous integration of my blog on Netlify

Account upgrading

Log in to GitHub as the old (destination) account and upgrade it to Developer plan, which supports unlimited private repositories.

Transferring 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.

Transfer button

A confirmation dialog appears. Enter the name of the repository and the login name of the destination account.

Confirmation dialog

You will receive a confirmation e-mail from GitHub as follows. You have to open the link contained in it.

Confirmation mail

After the repository is transferred, you can see the transferred repository prefixed by the destination user (demo-private-repository in the screenshot).

Transferred repository

Repeat the steps above on all repositories owned by the source account. After transferring all the repositories, they are prefixed by the destination user.

All repositories transferred

Account downgrading

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:

downgrading

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.

Conclusion

Everything seems to work as expected. It is much simpler to use a single GitHub account.