There are only two steps to setup your personal blog with your own domain.
Create a CNAME file under the root of your repos(e.g. https://github.com/sicongtang/sicongtang.github.io/blob/master/CNAME), in hexo or octopress blog system, just create a CNAME file under source folder. This will automatically deploy CNAME file to your repository's root directory.
Then you need to configure a custom subdomain with your DNS provider. Creating two A records helps you to use custom apex domains. In addition, if you configure both an apex domain (e.g. sicongtang.me) and a matching www subdomain (e.g. www.sicongtang.me), GitHub's servers will automatically create redirects between the two.