A Way of Code

興味の赴くままに書き綴っていきます。

Gitのセットアップ - homebrewをフォークするためのGit&GitHub入門 前編

homebrewのFormulaを直したくてフォークしようと思いっ立ったものの、GitとGitHubの使い方が分からなかったのでメモしました。

フォーク

homebrewを使っていると、欲しいパッケージ(Formula)が無かったり、オプションパラメータを直したくなることがあります。
そんなときはGitHubでフォークしましょう。
フォークをすると、homebrewのオリジナルを自分のGitHubにコピーして編集することが出来ます。さらに、追加あるいは編集したFormulaは、pull requestをすることで、本家にマージしてもらうように依頼できます。configureの調整で苦戦したあなたの労力は無駄じゃないんです!(鼻息荒く

目次

1. GitHubアカウントの作成
2. Gitのインストール
3. SSHキーの設定
4. Gitの設定

1. GitHubアカウントの作成

⇒アカウント作成済みの場合は「2.Gitのインストール」

まずGitHubのアカウントを持っていない場合は、先にGitHubのアカウントを作成してください。
https://github.com/

homebrewのフォークをするなら無料のフリープランで良いでしょう。
※アカウントを作成した後で有料のプランに切り替えることが出来ます。
アカウントを作成すると、https://github.com/ユーザ名 というURLであなたのGitHubポータルページが作成されます。

2. Gitのインストール

Macにはgitが最初から入っていますが、homebrewな人はhomeberwからgitをインストールしましょう。

$ brew install git

3. SSHキーの設定

GitHubを使うためにはSSHキーの設定が必要です。
既にSSHキーを持っていてGitHub以外のことに使っている方は、既存のSSHキーを使うか別名で新たにSSHキーを作成する等、適宜対処してください。
ここでは既存のSSHキーをバックアップしておいて、新たにGitHub用にSSHキーを作成してきます。

3.1 SSHキーがあるかどうかを調べる

cd ~/.ssh

⇒.sshディレクトリが無ければ以下をスキップして「3.2 SSHキーを生成する」へ。

既にSSHキーがあるかどうかを調べる:

$ ls
id_rsa      id_rsa.pub  known_hosts

id_rsaとid_rsa.pubという鍵が既に作成されていたので、バックアップしておきます。

$ mkdir key_backup
$ mv *rsa* ./key_backup

3.2 SSHキーを生成する

ssh-keygenでSSHキー(公開鍵/暗号鍵)を生成します。
パラメータにはあなたのメールアドレスを指定してください。

$ ssh-keygen -t rsa -C "your_email@yourmail.com"

すると、以下の入力を求められます。

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/toggtc/.ssh/id_rsa): [入力が求められている]

⇒キーのファイル名をフルパスで指定してください。
 そのままEnterを押しても構いませんが、セキュリティのために他のファイル名にすることをお勧めします。
 (例:/Users/username/.ssh/hoge_rsa)

次にパスフレーズを求められるので、5文字以上の任意のフレーズを入力してEnterを押してください。
ここで入力したフレーズは忘れないようにしてください。

Enter passphrase (empty for no passphrase):  // => 任意のパスワードを入力して[Enter]
Enter same passphrase again:  // => 再度パスワードを入力して[Enter]

以下のようなメッセージが表示されれば、SSHキーが作成されました。

Your identification has been saved in /Users/toggtc/.ssh/id_rsa. // <-秘密鍵
Your public key has been saved in /Users/toggtc/.ssh/id_rsa.pub. // <-公開鍵
The key fingerprint is:
02:d1:cb:08:cb:66:ce:76:da:26:cd:9a:a0:78:ba:50 your_email@yourmail.com
The key's randomart image is:
+--[ RSA 2048]----+
|    ..           |
|  .  ..          |
| . o.o .         |
|  = ..o          |
| =E   . S        |
| .+ .  .         |
|o. *             |
|+.+.=            |
|=+o+             |
+-----------------+

なお、秘密鍵のパーミッションが600(もしくは400)になっていることを確認しておきます。

$ ls -alF
-rw-------   id_rsa        // <= 秘密鍵
-rw-r--r--   id_rsa.pub

3.3 SSHキーをGitHubに登録する

githubのページを開きます。
https://github.com/

(1) 右上にある"Account Settings"を開く:
f:id:toggtc:20120225092811j:plain

(2) 左側にある"SSH Keys"を開く:
f:id:toggtc:20120225092826j:plain

(3) "Add New SSH Key"を押す:
f:id:toggtc:20120225092855j:plain

(4) SSHキーをクリップボードにコピーしておく:
ここで、さきほど作成したSSHキーをクリップボードにコピーするために、以下のコマンドを入力します。
SSHキーのファイル名は適宜読み替えてください。また、公開鍵側のファイルを指定してください。

pbcopy < ~/.ssh/id_rsa.pub

#pbcopyはクリップボードの操作を行うMac固有のコマンドです。

(5) 入力
Titleに任意のタイトルを入力し、Keyの欄でクリップボードにコピーした公開鍵をペーストします。入力が終わったら"Add Key"ボタンを押します。
f:id:toggtc:20120225093335j:plain

(6) キーの追加完了
f:id:toggtc:20120225093411j:plain

3.4 SSHの接続テスト

$ ssh -T git@github.com
Hi toggtc! You've successfully authenticated, but GitHub does not provide shell access.

接続できました!

4. Gitの設定

Gitの設定はリポジトリごとにできますが、リポジトリごとに設定するのは面倒なので予めglobalな設定をしておきます。

4.1 user.name, user.email

gitにあなたの名前とEmailアドレスを教えてあげましょう。
ちなみに、user.name, user.emailに設定した情報はコミットしたときに表示されます。
# 以下の例は自分の名前とEmailに置き換えてくださいね。

git config --global user.name "Foo Bar"
git config --global user.email "Foo@example.com"

もし、ある特定のリポジトリでは設定を変えたい場合、そのリポジトリのある位置で--globalオプションを除いた状態でgit configコマンドを実行すると、そのリポジトリにだけ設定が反映されます。
例:

cd ~/git/other_project #←.gitのある位置
git config user.name "hogepiyo"
git config user.email "hogepiyo@example.co.jp"

4.2 github.user, github.token

GitHubのユーザ名とAPIトークンを設定します。
まず、APIトークンの確認ですが、GitHubのページから"Account Settings"→"Account Settings"と辿っていきます。

f:id:toggtc:20120225092811j:plain

f:id:toggtc:20120225102118j:plain

次に表示されているAPI TokenをGitに設定します。

$ git config --global github.user "hoge"
$ git config --global github.token "aabbcc11223344556677889900abc123"

github.userにはGitHubのユーザ名を、
github.tokenにはAPI Tokenをそれぞれ設定します。

このAPIトークンは秘密にしてください、だそうです。
もし漏らしてしまったら、パスワードを変えると自動的に再発行されます。
ということはGitHubのパスワードを再設定したら、上記の設定をもう一度行う必要があります。

4.3 color.ui, core.editor, alias

どうせなら色が付いていたほうがいいですよね。コンソールが真っ黒じゃ味気ないってもんです。
また、git commitをしたときに-mオプションを指定しないとエディタが立ち上がってコミット時のコメントを求められます。そのときに使うエディタを設定しておきましょう。

git config --global color.ui "auto"
git config --global core.editor "vi"

他にもgitコマンドをエイリアスできたり等、Gitにはいろいろな設定項目がありますので、お好みのGit環境を作ってください。


以上で準備は整いました。
後編ではフォークからpull requestまでをしていく予定です。
(2012/3/5追記:後編の前に中編を追加しました)

次回:http://toggtc.hatenablog.com/entry/2012/03/05/023137

参考

githup:help
Set Up Git
http://help.github.com/mac-set-up-git/

関連記事

homebrewをフォークするためのGit&GitHub入門
前編:Gitのセットアップ
中編 : Gitの仕組み
後編1:実践Git&GitHub (1/2)
後編2:実践Git&GitHub (2/2)