Eclipse(Windows)からGitHubにプッシュする。

GitHubにリポジトリを作って、前回作成したplay2のデフォルトアプリをプッシュします。

GitHubとは、Gitのホスティングサービスで、全世界の人たちとコードを共有出来る場所を提供してくれます。
全世界というと大げさなので、友人とか同僚とかとですね。

今回は、会社の仲間とソーシャルスタディという勉強会をはじめたので、その仲間とコードを共有して行く目的で使って行きます。
ソーシャルスタディの詳しい話は、また別のブログに書きます。

Gitは?っていうと、分散型バージョン管理システム
Subversionリポジトリをサーバに集中させるので集中型といいますが、それに対してGitはサーバ上にリモートリポジトリを置いて、
さらに、開発者の端末にローカルリポジトリを配置するので分散型なのです。

何が嬉しいのかというと、自分の端末にリポジトリがあるのでオフラインでも使えますし、コミットを失敗して仲間に迷惑をかけることもありません。
リモートリポジトリにPushするまでは、気兼ねなくコミットが出来ます。
最近特にGitがいいな、と思うのは複数コミットをひとつにまとめられること。
細かくコミットされているとコードレビューにかなり苦労していたりします。

詳しくは「サルでもわかるGit入門」を。

では、GitHubのアカウントの作成から、リポジトリを作って、play2のアプリをプッシュするところまで行きます。

1. Gitのインストール

以下のサイトからGit for Windowsをダウンロードします。

http://msysgit.github.com/

ダウンロードしたインストーラを起動します。
執筆時の最新は「Git-1.8.1.2-preview2013201.exe」
「Next」
f:id:yugolf:20130219013541p:plain

「Next」
f:id:yugolf:20130219013550p:plain

任意のインストール先を入力して「Next」
f:id:yugolf:20130219013602p:plain

「Next」
f:id:yugolf:20130219013617p:plain

「Next」
f:id:yugolf:20130219013627p:plain

「Checkout Windows-style,commit Unix-style line endings」のまま「Next」
Checkoutの時の改行コードは「CRLF」、コミットの時は「LF」。
f:id:yugolf:20130219013744p:plain

2つ目の「Run Git from the Windows Command Prompt」を選択し「Next」
EclipseからもGitを使うのでこうしておいた方が良さそう。
f:id:yugolf:20130219013748p:plain

「Finish」
f:id:yugolf:20130219013822p:plain
これで「Git for Windows」のインストール完了です。

続いて、「Git Bash」を起動してGitの設定をしておきます。
設定するのは名前とメールアドレス。

名前:yugolf
メールアドレス:xxx@gmail.com

上記の場合は以下のコマンドを実行。

git config --global user.name "yugolf"
git config --global user.email "xxxx@gmail.com"

※プロキシ環境化の場合は、プロキシの設定も必要です。

git config --global <プロキシサーバ名>:<ポート>

2. GitHubのアカウント作成

GitHubのページからアカウントを作成します。
ユーザ名、メールアドレス、パスワードを入力し「Sign up for free」。Freeです。
f:id:yugolf:20130219014638p:plain

3. SSH Keyの設定

「Git Bash」から以下のコマンドを実行しSSH Keyを作成します。

ssh -keygen -t rsa -C "xxxx@gmail.com"

パスワードを設定するよう要求されるので、パスワードを2回入力。

先ほど作成したアカウントでGitHubにログインし、SSH Keyを登録します。
画面右上の「Account settings」をクリック。
f:id:yugolf:20130220011532p:plain
画面左のSSH Keys」をクリックし、右上「Add SSH key」をクリック。
f:id:yugolf:20130220010137p:plain
下に出てくる「Add an SSH Key」に、任意の「Title」を設定し、「Key」には先ほど作成した「SSH Key」を貼付けます。
貼付けるのは「C:¥Documents and Settings¥<ユーザ名>¥.ssh」にある「id_rsa.pub」の内容をそのままでOK。

4. リポジトリの作成

画面右上の「Create a new repo」からGitHubにリモートリポジトリを作成します。
f:id:yugolf:20130220010856p:plain
「Repository name」「Description」を入力、「Public」を選択し、「Create repository」をクリックするとリポジトリが作成されます。
f:id:yugolf:20130219015454p:plain

5. EclipseのプラグインEgitをインストール

Eclipseを起動し、「ヘルプ」->「新規ソフトウェアのインストール」を選択します。
f:id:yugolf:20130211000528p:plain
作業対象で「Juno - http://download.eclipse.org/releases/juno」を選択し、表示された「名前」から「コラボレーション」の「Eclipse EGit」と名のつくものをすべてチェックします。
選択肢にない場合は、「追加」から追加しましょう。
Pleiades All in oneを使った場合は、既にインストールされているものもあります。

「次へ」・・・と流れに従ってインストール。
f:id:yugolf:20130220011829p:plain

6. Eclipseの設定

Eclipseから「ウィンドウ」->「設定」を選択し、「設定」画面を表示します。
画面左のメニューから「チーム」->「Git」を選択、「複製リポジトリー」の「デフォルト・フォルダー」は
「C:¥Documents and Settings¥<ユーザ名>¥.git」とし、「OK」。
既に設定されている場合は、特に変更しなくてもOK。
f:id:yugolf:20130220012525p:plain

ついでに「構成」の内容も確認しておきましょう。
「Git Bush」で設定したユーザ名、メールアドレス、プロキシ(設定した人のみ)が設定されているはずです。
f:id:yugolf:20130220013121p:plain
f:id:yugolf:20130220013133p:plain

7. play2アプリケーションをローカルリポジトリにコミット

pay2のアプリケーションを「GitHub」で共有します。
「パッケージ・エクスプローラー」でplay2のアプリケーションを右クリックし、「チーム」->「プロジェクトの共用」を選択。
f:id:yugolf:20130220020006p:plain
もちろん「Git」を選択し「次へ」。
f:id:yugolf:20130220020132p:plain
「プロジェクトの親フォルダー内のリポジトリーを使用または作成」をチェックしリポジトリの作成」をクリック後「次へ」。
これをチェックするとEclipseのworkspaceにローカルリポジトリが作成されるのですが、この設定にしないとGitHubにプッシュした時に余計なディレクトリ階層が1個できてしまったので、チェックして進めます。
f:id:yugolf:20130220020249p:plain
プロジェクトがチーム共用となりました。
f:id:yugolf:20130220020331p:plain

続いて、ローカルリポジトリへコミット。
「パッケージ・エクスプローラー」でplay2のアプリケーションを右クリックし、「チーム」->「コミット」を選択。
f:id:yugolf:20130220013246p:plain
コミット・メッセージに「first commit」と入力し、コミットしたいファイルをチェック。「.target」と「bin」以外にします。
「Push the chages to upstream」をチェックし、一気にGitHubのリポジトリにプッシュします。
f:id:yugolf:20130220013542p:plain

8. play2アプリケーションをGitHubにプッシュ

「宛先Gitリポジトリー」にプッシュするリポジトリを設定します。
f:id:yugolf:20130220013843p:plain
URI」を設定すると、自動的に「ホスト」「リポジトリー・パス」が設定されます。
プロトコルは「https」。
「認証」にはGitHubのユーザとパスワードを設定し「次へ」

URI」はGitHubのリポジトリ作成直後の画面から確認出来ます。
f:id:yugolf:20130220014026p:plain

「Add create/update specification」の「ソーズ参照」は「master」選択し「Add Spec」をクリック。
「Specification for プッシュ」に表示されたのを確認して、「完了」。

あとは流れに沿っていけば、GitHubへのプッシュが完了します。
f:id:yugolf:20130220014601p:plain
f:id:yugolf:20130220014622p:plain

GitHubのリポジトリを確認すると、play2のアプリケーションがプッシュされているのが分かります。
f:id:yugolf:20130220014724p:plain

これで、play2のアプリケーションは全世界に公開された事になります。

※コミット時にプッシュせず、あとからプッシュだけする場合は、「パッケージ・エクスプローラー」でプロジェクトを右クリックし、「チーム」->「リモート」->「プッシュ」からやります。
f:id:yugolf:20130220123433j:plain

今回はEclipseからのGit利用を紹介しましたが、GUIツールとして「TortoiseGit」や最近Windows向けのベータ版が出た「SourceTree for Windows」もあります。
でも現時点(2013.1)では「sourcetree-for-windows-beta-signup」は64bit版しかないようですね。