Gitを触ってみるよ その4「GitHubデビューしてみた」
HadoopStreamingについて書いた記事の時に作ったフレームワークを公開するのにGitHubを使ってみたので、Gitを触ってみるよシリーズの一環として備忘録を…。*1
今回のリポジトリ構成のイメージ
普通であればローカル環境からGitHubにpushできるように、という設定をすると思うんですが、自分の場合は、Subversion的な集中型リポジトリをサーバに持って、そこで管理しているものの中で公開したくなったものだけGitHubにpushする…という風にしたかったので、若干変則的です。
イメージとしてはこんな感じ…。
以降のコマンドラインの内容は、上記イメージの構成の場合のものです。
GitHubのユーザアカウントを取得する
まずは、GitHubのユーザアカウントを取得します。この辺は大して詰まるところも無いので省略…。*2
ちなみに、ご予算に応じて様々なプランをご用意させて頂いておりますので、お財布とご相談の上、適当なプランをご判断下さい。(笑) 「どうしてもプライベートなリポジトリが欲しい!」という事で無ければ、Freeのプランでいいとは思いますが…。
GitHubへのpush用に公開鍵を登録する
GitHubへpushを行うユーザで公開鍵を作成して、それをGitHubに登録します。
# su - git $ ssh-keygen -t rsa $ cat .ssh/id_rsa.pub
GitHubにログインして、右上にある"account"を押して、"SSH Public Keys"の項目の所で、作成した公開鍵の内容をコピペして登録します。
GitHub上のリポジトリを作成する
公開鍵の登録ができたら、右上の"dashboard"でTOPページに戻って、"Create a Repository"を押してリポジトリの作成を開始します。
"Project Name"、"Description"、"Homepage URL"を適宜入力して、"Create Repository"を押せばリポジトリが作成されます。
集中型リポジトリを作成する
サーバ上に、集中管理用のリポジトリを作成します。
# su - git $ cd public/ $ mkdir php-hadoop-streaming-frontend.git $ cd php-hadoop-streaming-frontend.git/ $ git --bare init
ローカル環境のソースコードを集中型リポジトリにpushする
ローカル環境上で開発していたソースコードを集中型リポジトリへpushします。
# su - hadoop % cd bin/mapreduce/php/lib/ % git remote add origin ssh://git@localhost/home/git/public/php-hadoop-streaming-frontend.git % git push origin master
今回は、集中型リポジトリのあるサーバと同じサーバ上で直接ソースコードを書いていたので、push先がlocalhostになっています。
集中型リポジトリからGitHubへpushする
集中型リポジトリへpushされたソースコードを、GitHubへpushします。
# su - git $ mkdir github $ cd github/ $ git clone /home/git/public/php-hadoop-streaming-frontend.git $ cd php-hadoop-streaming-frontend/ $ git remote add github git@github.com:stellaqua/php-hadoop-streaming-frontend.git $ git push github master
GitHubへpushする時用に新しくディレクトリを作って、そこへ一旦cloneしてから、GitHubへpushします。
以降、開発を進めて、GitHubへ更新内容をpushする時は、以下のようにpull→pushを行います。
# su - git $ cd github/php-hadoop-streaming-frontend/ $ git pull origin master $ git push github master