[補講]GitHubを使う

アプリを開発していると、ファイル(プログラムや画面デザイン、画像など)の管理が大変になってきます。
バージョンアップを重ねたり、開発に関わる人が増えたりすると、どのファイルが最新で、どのプログラムに何の機能を追加したのか分からなくなります。
そこで、古くから「ソースコード管理システム」というものが使われてきました。ファイルのバージョン管理や共有機能、排他機能などを搭載し、複雑なプログラム開発を支えています。

GitHubとは

ソースコード管理システムとして有名なのが「GitHub」です。マイクロソフトが買収してさらに知名度が高まりましたね。これは「Git」というソースコード管理システムを、オンラインで運用管理するサービスで、多くのプログラマーがこのGitHubを利用しています。うまく運用すると、多くの人の手で1つのプロジェクトを混乱なく作り上げることができます。

 

まずは「Git」について説明しましょう。
Gitとは、ソースコード管理システムの一種で、変更したファイルの保存(Commit)や変更前のデータの復元などができます。
機能を追加しようとしたらバグを入れ込んでしまった、意図せず関係ない部分を変更して壊してしまったなどの「ソースコード修正時の事故」を防ぐことができます。
GitHubは、こうした各々のMacやPCで管理されているGitを、オンラインでまとめて管理することができるWebサービスなのです。
これを使うと、複数の人が離れた場所にいても1つのアプリやシステムの開発を行えます。リモートワークやクラウドソーシングが盛んな現代の開発では、欠かせないサービスとなっています。

 

コラム:本当に欠かせないサービスなのか?
 
本当のことを言えば、1人でアプリを作って確実にソースコードを管理できていれば、GitもGitHubも使わずにアプリ開発はできます。例えばジオグラフィカというアプリは、iPhone版とAndroid版でそれぞれ5万行程度のプログラムを書きましたが、個人で開発したのでGitもGitHubも使っていません。ただし、チーム開発ではクラウドによる共有管理は必須です。開発者の一般常識として、ソースコード管理システムは使えるようになってください。

XcodeにはGit、GitHubの連携機能がある

これまでのレッスンでたくさんのプロジェクトを作ってきましたが、実はすべてGitを使うように設定していました。新規プロジェクトの保存画面で「Create Git repository on my Mac」という項目にチェックが入っていると、Gitがプロジェクトを管理してくれます。

 

Xcodeのメニューにも「Source Control」という項目があり、そこからファイルの保存(コミット)などを行えます。
更にGitHubとの連携機能もあるので、変更したファイルを簡単にGitHubのサーバーに送ることができます。そうしておけば、もし開発用の機体が壊れてもソースファイルを失わずに済みます。

 

用語解説

コミット
編集したソースコードの内容を確定(リポジトリに保存)する事をコミットといいます。どういう部分を変えたのか、必ずコメントを残すことで、どこを何の目的で変更したのか後で確認することができます。

 

リポジトリ
ソースコードを保存しておく場所の事です。「ローカルリポジトリ」と「リモートリポジトリ」の2種類が存在します。

 

ローカルリポジトリ
自分のパソコン(Mac)に存在するリポジトリです。

 

リモートリポジトリ
GitHubなど、自分のパソコンではないサーバーに存在するリポジトリです。ローカルリポジトリでコミットした内容を「プッシュ」するとリモートリポジトリに反映されます。

 

プッシュ
ローカルレポジトリに自分がコミットした内容をリモートリポジトリに送ることをプッシュと言います。自身のパソコンでコミットしてもプッシュしなければ、他の人のソースコードに影響を与えることはありません。

 

プル
誰かがリモートリポジトリにプッシュした内容をダウンロードして、自分のローカルリポジトリに反映させることをプルといいます。

 

GitHubのアカウントを作る

自分のMacだけでGitを使うこともできますが、先のことを考えるとGitHubを使えたほうが便利なので、アカウントを作っておきましょう。
まずはGitHubのWebサイトにアクセスしてください。
https://github.com/

ユーザー名(IDの事です)、メールアドレス、新しいパスワードを入力し、「Sign up for GitHub」をクリックしてください。

 

最初は無料アカウントで構いません(有料アカウントにすると毎月$7かかります)。
無料の場合はGitHubに登録したリモートリポジトリが世界に公開されますが、有料アカウントだと非公開を選択できます。
GitHubで管理しているソースコードを世界に公開したくない時は月に$7が必要です。もしくはGitHubにはプッシュせずに、ローカルのリモートリポジトリのみを使うかです。

 


「Continue」ボタンを押すと次の画面に進みます。
開発レベル、使用目的などのチェックボックスを入れてください。

 

下のような画面になったら登録完了です。

登録したアドレスに「[GitHub] Please verify your email address.」というメールが来るので、文中にある長いURLのリンクをクリックして、メールアドレスの認証を行ってください。

 

ターミナルでGitの設定をする

アカウントを作ったら、今度はGitHubのアカウントをMacに設定する作業です。Macのターミナルで下記コマンドを実行してください。

「GitHubユーザー名」の部分は自分のユーザーIDを入力してください。

git config --global user.name "GitHubユーザー名"

次はメールアドレスの設定です。下記コマンドを実行してください。「メール@アドレス.com」の部分にアドレスを入力してください。メールアドレスの方にはダブルクォーテーション( ” )は不要です。

git config --global user.email メール@アドレス.com

最後に下記コマンドで設定を確認して、問題なければ完了です。

git config --list

 

 

XcodeにGitHubのアカウントを登録する

Xcodeのメニューから「Preference」を選んでください。

設定の『Accounts』を選び、左下の『+』ボタンを押すとアカウントの種類を選ぶ画面になります。

GitHubを選んで「Continue」をクリックしてください。

 

GitHubに登録したユーザー名とパスワードを入力して「Sign In」をクリックしてください。


これでXcodeにGitHubのアカウントが設定されました。

 

リモートリポジトリを作ってプッシュする

リモートリポジトリを作って、ローカルリポジトリの内容をプッシュしてみましょう。無料アカウントの場合は内容が世界に向けて公開されるので、ソースコード中に開示してはいけない秘密のAPI keyなどが入っている場合は注意してください。
Xcodeの左側にあるナビゲーションウィンドウの、「ソース・コントロール・ナビゲーター」ボタンをクリックして表示してください。

 

次に、青いフォルダアイコンを2本指でクリックしてメニューを表示させてください。

 

「Create “プロジェクト名” Remote on GitHub」をクリックしてください。
リモートリポジトリを作る画面になります。


Publicを選ぶと世界に公開され、誰でも内容を見ることができます。他人に公開したくない場合はPrivateを選んでください(月に$7)。

プッシュの前にコミットしておいてください

ナビゲーション・ウインドウのファイル名の右に「M」と表示されているファイルは、編集後にコミットしていないファイルです。まずはローカルリポジトリにコミットしてください。
Xcodeのメニューの「Source Control」から「Commit」を選んでください。

変更されているファイルにチェックが付いています。
画面下部のコメント欄に変更内容を入力して、右下の「Commit」ボタンを押すとコミット(ローカルリポジトリへの保存)ができます。

 

ある程度コミットがまとまり、変更部分に問題がなくなったらプッシュしてみましょう。
Xcodeのメニューの「Source Control」から「Push」を選んでください。


次の画面で「Push」をクリックして、送信に成功すればGitHubのリモートリポジトリに保存されます。

 

GitHubからファイルをダウンロードする

ここまでで、自分のローカルリポジトリをリモートリポジトリに保存することができました。
他人が公開しているリモートリポジトリをダウンロードして自分のパソコンの開発環境で開くこともできます。
まず、適当なリモートリポジトリを開いてください。

例↓
https://github.com/cleanAndBuild/sakubun

右にある「Clone or download」をクリックしてください。

 

ポップアップが表示されます。「Open in Xcode」をクリックすると、ファイルがダウンロードされて解凍まで自動で行われ、Xcodeが起動してプロジェクトファイルが読み込まれます。

コードサインが違っているとビルドできないので、エラーになっている場合はプロジェクトの「General」の「Signing」の「Team」を自分のものに変更してください。

GitHubへのプッシュや、GitHubからのプルはXcodeを使うととても簡単です。

SSH通信をする手順

XcodeからGitHubを使う場合はHTTPSでも通信できるため必須ではありませんが、SSH通信(暗号通信)をするための手順を解説しておきます。

SSHキーを作る

SSH通信には公開鍵と秘密鍵という、とても長いパスワードのようなものが必要です。それぞれは『id_rsa.pub(公開鍵)』とか『id_rsa(秘密鍵)』という名前のファイルとして生成されます。

下記コマンドを、メールアドレスの部分だけ書き換えてターミナルから実行してください。

ssh-keygen -t rsa -b 4096 -C "自分の@メールアドレス.jp"

すでにファイルがあると、下のようなメッセージが表示されます。
上書きしたくない場合はnを押して、違うファイル名で保存されるようにしてください。

Enter file in which to save the key (/Users/cleanbuild/.ssh/id_rsa):   
/Users/cleanbuild/.ssh/id_rsa already exists.
Overwrite (y/n)? n

上書きしたくない場合はnを押して、違うファイル名で保存されるようにしてください。

下のように、パスワードの入力を促されたら新しく決めたパスワードを2回入力してください。

Enter passphrase (empty for no passphrase): 
Enter same passphrase again:

全体としてはこんな感じになります。

ターミナルで下記コマンド(ファイル名の部分は各自変える)を実行してください。

pbcopy < ~/.ssh/id_rsa.pub  (『~/.ssh/id_rsa.pub』の部分は公開鍵のファイル名です)

これでクリップボードに公開鍵の内容がコピーされました。

GitHubに公開鍵を登録する

次は、生成してクリップボードにコピーした公開鍵をGitHubに登録します。
GitHubにアクセスして、右上にある自分のアイコンをクリックして『Settings』を選んでください。
https://github.com/

 

左のメニューの『SSH and GPG keys』を選んで、右上の『New SSH key』をクリックしてください。

 

タイトルはアクセスするMacの名前など、自分が識別できる名前を入力してください。
先ほどクリップボードにコピーした公開鍵をKeyの部分にペーストし、Add SSH Keyをクリックすれば登録完了です。

 

XcodeのGitHubアカウントでSSH通信の設定をする

Xcodeのメニューの『Xcode→Preferences…→Accounts』を開き、上で設定したGitHubのアカウントを選んでください。
下のような画面になります。

 

Clone usingをSSHにして、右にあるフォルダマークから、SSHキーを作るときに一緒にできた秘密鍵のファイルを指定してください。
エラーが出なければ、これで設定完了です。


戻る

Begin typing your search above and press enter to search. Press ESC to cancel.

Back To Top