2012年5月4日金曜日

XcodeからGitHubのリポジトリを使う方法

Xcode4から、SubversionとGitといったバージョン管理システムが統合され、直接呼び出せるようになりました。
そこで今回はXcodeの設定をしてGitHubのリポジトリを使えるようにします。

前提


手順

1. GitHubのリポジトリを作成する

まずはGitHubに新規リポジトリを作成します。今回は「HelloGitHub」という名前で作成しました。Xcodeでのプロジェクト名も「HelloGitHub」としていますが、必ずしも両方を同じにする必要はありません。

2. Xcodeで新規プロジェクトの作成

2-1. Xcodeのメニューから新規プロジェクトを選択し、「HelloGitHub」という名前でプロジェクトを作成します。テンプレートは「Single View Application」を選択しましたが、何でも構いません。



2-2. その際、プロジェクトの保存先を選ぶのですが「Create local git repository for this project」にチェックを入れてください。これを選択することで、XcodeからGitリポジトリを使うことができるようになります。


3. GitHubのリポジトリを登録する

3-1. 先程作成したGitHubのURLをコピーします。リポジトリのトップにアクセスすることで取得できます。

3-2. 続いて、Xcodeのメニューから、「Source Control > Repositories...」を選択します。

3-3. すると「Organizer - Repositories」が起動します。そこで、「Remoets」を選び、「Add Remote」をクリックします。

3-4. 「Remote Name」に「origin」、「Location」に先程コピーしたGitのURLである「git@github.com:uqtimes/HelloGitHub.git」を入力します。
以下のコマンドと同じですね。
$ git remote add origin git@github.com:uqtimes/HelloGitHub.git

3-5. 追加できたので、Locationを再度確かめます。「Username」「Password」の入力欄がありますが、SSH鍵を登録してあるはずなので、入力の必要はありません。
XcodeのプロジェクトディレクトリにGitリポジトリが出来ているため、ターミナルからコマンドで実行しても確認できます。
$ cd /path/to/HelloGitHub
$ git remote -v
origin git@github.com:uqtimes/HelloGitHub.git (fetch)
origin git@github.com:uqtimes/HelloGitHub.git (push)

4. ローカルのリポジトリにコミット

4-1. ここで、プロジェクトナビゲーターを見てみると「M」と書かれています。ローカルのGitにまだコミットされていない変更点があるということです。まだ何もしていないのに更新されているのはXcodeのプロジェクトを管理する「project.pbxproj」というファイルです。プロジェクトを作成し、Gitでの管理が始まった後にXcode自身がファイルを変更したため、このような状態になっています。

4-2. このままではGitHubにPushできないため、一度ローカルのGitにコミットします。「Source Control > Commit...」を選択します。

4-3. すると、差分のあるファイル一覧と、その差分が表示されます。今回は「project.pbxproj」に差分があり、「project.xcworkspace」「xcuserdata」がまだ管理下に置かれていないことになります。今回は「project.pbxproj」のみチェックします。

4-4. すると「M」が表示されなくなり、GitHubにPushできるようになりました。


5. GitHubにPush・GitHubからPull

5-1. 「Source Control > Push...」をクリックします。

5-2. 数秒時間がかかりますが、「Organizer - Repositories」で追加したGitHubが自動的に選択されるので「Push」をクリックします。

5-3. 成功すると「Push successful」と表示され、自動的にウィンドウが閉じます。

5-4. それではGitHubのリポジトリを見てみます。すると、先ほどのソースコード一覧がコミットされています。

5-5. Pullの場合もほぼ同じです。「Source Control > Pull」と選びます。

5-6. 先程と同じように登録してあるGitHubのリポジトリが選択されているため「Choose」をクリックします。

5-7. 今回は差分が無いため「The local repository "HelloGitHub" is up to date.」と怒られますが、このようにしてGitHubからPullできます。


6. GitHubからのクローン

6-1. それでは、GitHubにあるリポジトリをもとにプロジェクトを作成します。まず「Window > Welcome to Xcode」を選択し、最初の画面を表示させます。

6-2. 「Connect to a repository」を選択します。

6-3. 取得したいGitHubのリポジトリのURLを入力します。今回は先程コミットしたHelloGitHubのURLを入力します。

6-4. 保存場所を選択します。

6-5. 以上でプロジェクトが作成されました。「Open Project」をクリックすることでプロジェクト画面が表示されます。

2 件のコメント:

  1. 初めまして、参考にさせていただいています。
    1つ質問なのですが、XcodeとGitHub間の認証はどのように行なわれているのでしょうか?
    一見、Xcode側からGitHubのIDやPasswordを入れていないようなので、疑問に思いました。
    よろしくお願いいたします。

    返信削除
    返信
    1. 参考にしていただき、ありがとうございます!
      前のエントリ「GitHubの活用(アカウントの作成と設定)( http://uqtimes.blogspot.jp/2012/05/github.html )」にて、GitHubへの接続時に使用するsshの鍵を設定しているためXcode上で何も入力しなくても自動的に鍵を使って認証することができております。

      削除