&tag(git,github); *目次 [#qd2faee7] #contents *参考情報 [#s65b4831] -[[github で人のコードをいじる「前」にforkする必要はない - Bulknews::Subtech - subtech:http://subtech.g.hatena.ne.jp/miyagawa/20090114/1231910461]] -[[gitでforkなどを経験してみた(またはwassr2twitterを導入) - ただのにっき(2009-05-14):http://sho.tdiary.net/20090514.html]] -[[Subversion ユーザーが GitHub を使ってみたよ (その2: 他人のプロジェクト編) - まちゅダイアリー(2010-07-05):http://www.machu.jp/diary/20100705.html#p01]] *基本 [#j460a31c] -無料アカウントで使えるのは300MBまで。 *ソースをダウンロードする方法 [#xc047f04] **直接ダウンロード [#nab3b37d] "Download"→"Download Sources"でダウンロードする。 **git cloneする [#ta4f3bfc] http://github.com/xxx/yyy.git の部分をコピーして git cloneを実行する。 git clone http://github.com/xxx/yyy.git *アカウント設定 [#fbdc0df1] **SSH keyを登録する(Macの場合) [#af107ed5] -SSH keyを登録してないとできないことが多いので登録する。 -[[Help.GitHub - Generating SSH keys (OSX):http://help.github.com/mac-key-setup/]]を見て順にやっていけばよい。 ***既存のキーのバックアップ [#d9d3b185] -使用するキーペアを持っている場合はスキップ。 -SSHのキーが既に存在している場合はあらかじめバックアップしておく。 #pre{{ $ cd ~/.ssh $ ls $ mkdir key_backup $ cp id_rsa* key_backup $ rm id_rsa* }} ***キーの生成 [#g4ac6d24] -使用するキーペアを持っている場合はスキップ。 -ssh-keygenを使ってキーペアを生成する。パスフレーズはできるだけ強いものを。 #pre{{ $ ssh-keygen -t rsa -C "aaa@bbb.com" }} ***GitHubアカウントにキーを追加 [#uec982e6] -アカウントページのSSH Public Keys→add another public keyでキーを貼り付ける。 -貼り付けるのはid_rsa.pubの中身。pbcopyコマンドを使ってクリップボードにファイルの中身を転送できる。 #pre{{ $ cat ~/.ssh/id_rsa.pub | pbcopy }} **使用する鍵の名前を変更する [#scfe5068] id_rsa以外の名前で使いたい場合、$HOME/.ssh/configファイルを編集する([[github に登録する公開鍵ファイルを id_rsa.pub じゃない名前で使いたい→ ~/.ssh/config で解決 - 刺身☆ブーメランのはてなダイアリー:http://d.hatena.ne.jp/a666666/20081219/1229696368]])。 #pre{{ Host github.com User git Port 22 Hostname github.com IdentityFile ~/.ssh/github_id_rsa TCPKeepAlive yes IdentitiesOnly yes }} **複数アカウントを使い分ける [#d1caa8e6] ホストに対して複数の鍵を登録したら使い分けてくれるらしい([[GitHubで複数アカウントを使うときの鍵の設定 - 思っているよりもずっとずっと人生は短い。:http://d.hatena.ne.jp/takahashim/20100603/p1]])。 #pre{{ Host github.com IdentityFile ~/.ssh/some_id.ppk IdentityFile ~/.ssh/another_id.ppk }} *Tips [#f945cc50] **fork後に元リポジトリの変更に追随する [#tf21e64e] [[githubでforkしたあとに元のリポジトリの更新を取り込む方法 - Clouder::Blogger:http://blog.clouder.jp/archives/001129.html]]によると次のようにすればいいらしい。 #pre{{ $ git remote add foo git://元のリポジトリ $ git pull foo }}