Github を Windows で使ってみる 2011 年版

2011/02/07

github を Windows で使ってみる という記事を 2008 年に書いたのですが、未だにそこそこ需要もあり見ていただいているようなので 2011 年版として新たに書いてみます。GUI で色々ごにょごにょ出来るようになっていたり感動しました。進化してる!

Help.GitHub – Welcome でざっと手順を眺める。書いてある手順を引用すると以下の通り。

Getting started with Git and GitHub

Getting up and running from scratch is easy:
1. Take a quick crash course on git
2. Install Git
3. Generate a keypair – If you have troubles
4. Set your user and email in git
5. Create a repo or fork an existing repo

Help.GitHub – Welcome』より引用

Install Git

まずは「2. Install Git」、インストール説明ページ Help.GitHub – Installing git (Win/msysgit) へ。

最新バージョンの msysgit をダウンロードしてねと書いてあるので、msysgit のリンク先、msysgit – Project Hosting on Google Code へ。

ダウンロードページ Downloads – msysgit – Project Hosting on Google Code から Git-バージョン-preview日付.exe をダウンロード。

現時点での最新 Git-1.7.4-preview20110204.exe を今回はダウンロードしました。

インストール作業は以下のように。基本的には Enter 連打で OK だと思います。










インストールが終わったら、以下のことをする必要がある、と書いてある。「generate an SSH keypair and set your local git config.」、つまり SSH keypair を作るのと、ローカル git の設定をしてね、ってことらしい。それぞれ、最初の項目でいうと、「3. Generate a keypair」と、「4. Set your user and email in git」に該当する作業ですね。

Generate a keypair

「3. Generate a keypair」 Help.GitHub – Generating SSH keys (Win/msysgit) へ。書いてある項目順に進めます。

Backup and remove existing keys

Windows スタートメニュー -> Git -> Git Bash で、起動させた画面に以下の通り入力(※入力するのは “$ “の後ろからです)。

$ cd ~/.ssh

これで ~/.ssh ディレクトリに移動。ちなみにこれは、Win7 では C:\Users\ユーザー名\.ssh に当たります。XP などでは C:\Documents and Settings\ユーザー名\.ssh に当たります。「~」は HOME を示すので、要するに HOME ディレクトリ内の .ssh ディレクトリです。

$ ls
config  id_rsa  id_rsa.pub  known_hosts
$ mkdir key_backup
$ cp id_rsa* key_backup
$ rm id_rsa*

書いてあるとおり入力。やってることは、ls でディレクトリ内容を表示して、ディレクトリの内容がバーっと出たら表示通りか一応見て、mkdir で key_backup ディレクトリを作って、cp で id_rsa~ で始まるファイルを key_backup にコピー、rm で .ssh ディレクトリ内の id_rsa~ で始まるファイルを削除。

よし出来た。次、「Generating a key」という項目をやります。

Generating a key

$ ssh-keygen -t rsa -C "自分のメールアドレス"

ここでやってることは、-t 鍵の種類、-C “コメント” で認証用の鍵作るよ!というかんじです。コメントに自分のアドレスを入れたのは、Help.GitHub – Generating SSH keys (Win/msysgit) でそうなっていたからです。必要かはちょっと分からなかったのですが一応入れておきました。

ssh-keygen [-q ] [-b ビット数 ] -t 鍵の種類 [-N 新しいパスフレーズ ] [-C コメント (訳注:SSH1のみ)] [-f 出力先identityファイル ]

SSH-KEYGEN (1)』より引用

先ほどの内容を打つと、以下のように出てくるはず。

Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/ユーザー名/.ssh/id_rsa):

() 内の場所に鍵ファイルを作るよ、OK ならエンター押して、いう内容。id_rsa は先ほどバックアップも取ったので作成して OK ということでエンター。すると以下のように出てきます。

Enter passphrase (empty for no passphrase):

パスフレーズ入れてエンター押して、という内容。空のままエンターだとパスフレーズなしになるようです。パスフレーズを適宜決めて入力してエンター。パスフレーズは 4 文字以下だとエラーになるので、4 文字より多い文字数で。エンターすると以下のように出てきます。

Enter same passphrase again:

もう一度パスフレーズを入れてエンターして、という内容。確認してるだけですね。パスフレーズを再度入力してエンター。バーっと文字が流れ、鍵作成が終わりです。

「Adding the key to your GitHub account」の項目へいきます。

Adding the key to your GitHub account

GitHub の自分のアカウントページ へいって、“SSH Public Keys” (SSH 公開鍵)セクションの “add another public key” (別の公開鍵の追加)をクリックして、“key” フィールドに public key (id_rsa.pub) の中身を入力して、と書いてあります。なのでその通りに。id_rsa.pub の中身は、適当にテキストエディタなどで開けばみれますのでそれをコピペすれば OK です。

Testing things out

きちんと繋ぐことが出来るかテストします。書いてある通り以下のように入力。

$ ssh git@github.com

すると、以下のようにでてきました。

Enter PassPhrase for key '/c/Users/ユーザー名/.ssh/id_rsa':

先ほど設定したパスフレーズを入力してエンター。するとズラズラっと文字が出てくるので、その中に “successfully authenticated” とあれば OK 。
ちなみに私の場合には以下のような文言が出ていました。これは時期によって多少変わるようなので、参考程度に。同じ文言でなくても “successfully authenticated” とあれば大丈夫です。

Hi 名前! You've successfully authenticated, but Github does not provide shell access.
Connecting to github.com closed.

内容は、「やあ○○!あなたの認証に成功したよ。だけど Github はシェルアクセスは提供してないんだよね。github.com から接続を切るよ。」的なかんじです。認証成功してれば OK ってことです。これで「3. Generate a keypair」は終了。

ちなみに、もしも “successfully authenticated” の文字が見あたらなかったら、Help.GitHub – Troubleshooting SSH issues をみてね、とありました。私はすんなり進んだので、このまま次へ進みました。

Set your user and email in git

「4. Set your user and email in git」 、Help.GitHub – Setting user name, email and GitHub token へ。

Setting user name and email globally in git

$ git config --global user.name "自分のユーザー名"
$ git config --global user.email "自分のメールアドレス"

ユーザー名とメールを設定。変更を push した時に、これらの名前やアドレスが一緒に送られるので、その辺は気をつけてください。設定しておかないとマシン名が表示されたりすることになり恥ずかしい思いをするとのことです…。

他にも項目がありますが、通常、この設定まですればこのページは OK のはず。

Create a repo or fork an existing repo

いよいよ最後、「5. Create a repo or fork an existing repo」。Github にリポジトリを作り、設定します。先ほど気づいたんですが、いつから Github 日本語表示できるようになってたんでしょうか。ビックリ。

GitHub にアカウントがまだなければアカウントを作成。あればログイン。

GitHub のトップページ の「Create a Repository」をクリックして Create a New Repository ページへ。

プロジェクト名 ※英語表示だと 「Project Name」
プロジェクト名など分かりやすい名前を適当に入力。
説明(オプション) ※英語表示だと「Description (optional)」
このリポジトリの説明、空白でも OK。
ホームページのURL ※英語表示だと「Homepage URL (optional)」
そのまんまです。オプションなので空白でも OK。
このリポジトリにアクセスできるのは誰ですか?(あとから変更することもできます) ※英語表示だと「Who has access to this repository? (You can change this later)」
デフォルトの Anyone を選択。フリーアカウントでは Anyone しか選べないようです。

これで「リポジトリを作る」(英語表示では「Create Repository」)をクリックすると、設定の書いてある以下のような画面が出ます。

最初の全体設定は、先ほど「4. Set your user and email in git」 で行って終わっているのでスルー。次の手順から。書いてあるとおりにすれば良いのですが、一応ちょっと何をするのか書いてみます。

まずディレクトリを作るコマンドを入力するのですが、先ほどの Git Bash の画面を閉じずに連続で作業してる場合、そのまま打つと .ssh ディレクトリ内に作られてしまうので注意。cd ~で移動してから打つようにしたほうがいいです。たとえば、C:\Users\ユーザー名\ 内に hoge というディレクトリを作ってそこをリポジトリにする場合、以下のようにします。

cd ~/
mkdir hoge

もし、D:\ 内に作りたいなら、

d:
mkdir ディレクトリ名

という感じです。
ディレクトリを作ったら、今作ったディレクトリ内に移動して、git init でそこにリポジトリを作成します。

cd ディレクトリ名
git init

あとは以下のように。この部分は先ほど開いたウェブページを見た方がプロジェクト名など間違えなくていいかもしれません。

touch README
git add README
git commit -m 'first commit'
git remote add origin git@github.com:ユーザー名/作ったプロジェクト名.git
git push origin master

もし、push しようとしたときに以下のように出たら、パスフレーズの入力をしてエンターしてください。

Enter passphrase for key 'c\User\ユーザー名\.ssh\id_rsa'

やってることは、以下のような感じ。

  • touch README で README というファイルを作る
  • git add README でローカルのリポジトリに README を追加
  • git commit -m ‘first commit’ でローカルのリポジトリに変更を適用。-m ~はコメントです。書式は -m ‘ここにメッセージ’ 。
  • git remote add origin git@github.com:ユーザ名/作ったプロジェクト名.git で、リモートのリポジトリを origin という略称でと登録
  • git push origin master で、ローカルリポジトリのブランチ(master)を、リモートのリポジトリ(origin)に push (コミットみたいなものです。アップしたと思えば OK)。

これで、ローカルリポジトリから、リモートリポジトリの Github に push されてるはずです。ブラウザから「https://github.com/ユーザー名/プロジェクト名」を見ると、README ファイルがアップされていると思います。

略称部分は別のものに変えても勿論いけます。そのときは、push する際も、git push 略称 master という形で適宜変えてください。ちなみに、master は git のデフォルトブランチ名。

もし、間違えたアドレスを略称に登録してしまったら?

間違えて登録した、もしくは略称にヒモづけてるリモートリポジトリのアドレスを変更したくなった場合。

$ git config remote.略称.url 新しいアドレス

これで OK。一応変更されているか、以下のように打って確認。

$ git config remote.略称.url

表示されている内容があっていたら OK。

その他、詳しいコマンド参考:

以上で終わりです。 :)

Git GUI でも一部のことは出来る

ちなみに、「3. Generate a keypair – If you have troubles」で行った SSH 鍵の作成は Git GUI の ヘルプ -> SSH キーを表示 -> 鍵を生成、からでも作れるようです。

また、「5. Create a repo or fork an existing repo」で行ったリポジトリの作成、リモートリポジトリへの push も Git GUI から行うことができます。しかし Git GUI、ちょっと触ってみたんですが劇的に重かったので、どうだろう…。たまにしか使わないからコマンド忘れちゃう~という場合には手軽でいいかもしれません。

Git GUI については、以下の記事が大変詳しかったです。

最初から GUI でやるより、一度は Git Bash からごにょごにょしてみたほうが、なんとなく何をしてるかわかりやすい気がします。

番外編:今作ったテストリポジトリを消したい

リポジトリのページから管理画面へ。

右下の「このリポジトリの削除」で削除することができます。

こんなことを書いている割に、ローカルでは Dreamweaver と連携させたくて Subversion を使っていたりします。git + Dreamweaver って出来るのでしょうか。またそのうち調べよう。