今回は Github でアカウントを設定して自作のライブラリを入れるまでの手順をメモとして残しておきます。
Github に登録する
登録して自分のページを作成していきます。連絡をもらうためのメールアドレスとか自分のプロフィールを作成できるようです。
SSH key を追加する
Github 用の SSH キーを作成します。私の環境では ~/.ssh/github に github_rsa と github_rsa.pub を作成しました。この github_rsa.pub の内容は Github の設定ページの SSH keys の項目より追加してください。
1 2 3 | mkdir ~/.ssh/github cd ~/.ssh/github ssh-keygen |
次に ~/.ssh/config を作成して以下の記述をします。この設定ファイルについては以前記事にしておりますので、詳しく知らない方はそちらを読んでください。
1 2 3 4 5 | Host github HostName github.com Port 22 User git IdentityFile ~/.ssh/github/github_rsa |
こうすれば github に SSH で接続しようとすれば、自動的に ~/.ssh/github/github_rsa を読みに行きますので、下記のように書くだけで簡単に clone することができます。
1 | git clone github:hoge/TsubuyakiComponent.git |
Github にリポジトリを作成する
リポジトリを作成します。Repository name はリポジトリ名です。説明には「グレイトなリポジトリ名は短くて覚えやすいものです。インスピレーションが必要?それなら cloaked-octo-ironman とかどうですか。」とのことですが、実際には時と場合によって自由に付ければ良いかも。私は CakePHP のライブラリのリポジトリを作成するので、キャメルケースで名前付けました。
Github のリポジトリを触ってみる
clone する方法
1 | git clone github:hoge/TsubuyakiComponent.git |
コミットする方法
1 | git commit -am 'TsubuyakiComponent 作成しました。' |
push する方法
1 | git push |
リポジトリを削除する
一度プロジェクトを終了したい場合やリポジトリを Github に置きたくない時や、リポジトリをリフレッシュしたい時などに削除することもできます。
Github にリポジトリを作って良いなと思ったこと
ライブラリがファイルとしてダウンロードできる
こういう感想は特殊かもしれませんが、ローカルで Git で管理して Github に push するだけで、Web 上からライブラリを ZIP ファイルでダウンロードできるようになるのは凄いと思いました。昔はライブラリを作成したら、こっちでファイルを圧縮してブログにアップロードして、ダウンロードできるようにしていました。
ライブラリの更新履歴が勝手に作られる
昔は更新履歴なんていう感じでテーブルで履歴を作っていたんですが、コミットログがその役目を果たしてくれるので良いですね。あと README.md にちょっとした使い方などを書いて、push すれば Web 上ですぐ確認できるようになるのも凄いです。いちいちブログに変更についての説明を書いて更新して、なおかつ readme.txt にもその変更を加えるという作業がなくなって良いです。
これからライブラリを作った時は、ブログには「こんなライブラリを作りました。最新版は Github からダウンロードできます。」という感じの紹介だけで良いわけですね。
ちょっとしたメモ書き
Github の README.md は markdown 記法
私も愛用している markdown 記法が採用されています。ご存じない方は以下のページが参考になりますので、一度読んでみましょう。
git rebase
git rebase が便利そうです。まだ上手く使いこなせないのですが、今後細かい作業を行なっていく上でお世話になりそうなコマンドなので色々調べて参考になったページをまとめておきます。
- 古いコミットを書き換える: 歴史修正主義者のための git rebase -i 入門 – 学習する機械、学習しない人間
- git rebaseって超便利じゃね? – Seasons.NET
- git rebaseのメモ – unpushの日記
Github での fork について
他人のコードを弄って、これ push してくださいって時に fork を使うらしいです。私のコードも fork されまくって、様々な機能が実装されたりしたら嬉しいです。でも基本 fork は新機能付けるよりバグの修正とかそういうレベルなのでしょうか。これから Github を使いながら学んでいきたいです。
コメント