XCodeでgithubを使う
by K.I
Index
- XCodeの開発は、ファイル構成が結構複雑で、バックアップが面倒っぽい。
- いい方法はないかな〜と思っていたら、XCodeはgitによるバージョン管理が出来るらしい。
- Xcodeでプロジェクトを作成する際に、リポジトリの設定をしておく。
- プロジェクト作成で、最後にプロジェクトの場所を指定する時、
- Source Controlで、Create git repository on 〜 の指定をチェックしておく。
- とりあえずLocalのリポジトリに保存するので、〜は My Mac にする
- ソースファイルを変更して、コミット(変更内容の登録)をしてみる。
- 変更は何でもいいけど、とりあえずViewControllerクラスを追加してみる →すると右側にバッチと呼ばれるgitの状態が表示される
- 追加された、ViewController.hと、ViewController.mの右側には、Aと表示される →これは追加(Add)されたという意味
- プロジェクト名の右側には、Mと表示される →これは変更(Modify)されたという意味
バッチ | 意味 |
M | ローカルに変更がある |
U | リポジトリに変更がある |
A | ローカルで追加された |
D | ローカルで削除された |
- Source Controlメニュー→Commit...を選択すると、変更箇所と差分が表示される
- 内容を確認して、変更内容のコメントを記述したら、Commitボタンを押すとコミットされる。
- コミットに成功すると、追加や変更を示すバッチが消えて、リポジトリとの差が無くなったことがわかる
- Source Controlメニュー→History...を選択すると、コミットの履歴が表示される
- 変更したユーザ名、変更日時、コメントと、変更されたファイル数等
- 変更されたファイル数、 Show * modified filesの部分をダブルクリックすると、
- 変更されたファイルのリストとバッチが表示される
- さらに、ファイル名をクリックすると、変更の箇所と差分を確認することも出来る
- コメントが無いと、履歴を参照しづらいので、変更内容を簡単に説明するコメントは必ず入れておいた方が良さそう。
- まず、 githubで、アカウントを作成する。
- Sign up for GitHub ボタンを押して、ユーザ名とパスワードを設定して、アカウントを作成する
- とりあえず、Freeアカウントで良いと思う
- 既に、アカウントを取得済の場合は、Sign inボタンを押して、Loginする
- New repositoryボタンを押して、新規のリポジトリを追加する
- リポジトリ名 →とりあえずプロジェクト名にする
- リポジトリの説明 →あとからみて分かるように、簡単なコメントを入れておく
- 公開範囲を、Publicにする →Publicにしておけば無料。誰でも見れるので、そのつもりで
- Create repositoryボタンを押すと、リポジトリが作成される。
- 下に、操作コマンドの例が表示されている
- Localのgitを作成して、Localとgithubを関連付けるコマンド
- Localのgitを、githubへコミットするコマンド
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/***/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): パスワード入力
Enter same passphrase again: パスワード再入力
Your identification has been saved in /Users/***/.ssh/id_rsa.
Your public key has been saved in /Users/***/.ssh/id_rsa.pub.
The key fingerprint is:
00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff ***@***.local
The key's randomart image is:
+--[ RSA 2048]----+
| ********************|
| ********************|
| ********************|
| ********************|
| ********************|
| ********************|
| ********************|
| ********************|
| ********************|
+-----------------+
$ cat /Users/***/.ssh/id_rsa.pub
ssh-rsa ABCD....公開鍵文字列が表示されるので、copyしておく
- githubに、Sign In して、設定アイコンをクリック、SSH Keysの項目を選択
- Add SSH key ボタンを押して、SSH key名を適当に設定、コピーしておいた公開鍵の内容をpasteする
- Add keyボタンを押す
$ ssh -T git@github.com
Warning: Permanently added the RSA host key for IP address '192.*.*.*' to the list of known hosts.
Saving password to keychain failed
Identity added: /Users/***/.ssh/id_rsa (/Users/***/.ssh/id_rsa)
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
- なんか Warningが出た。もう一度やってみる。メール確認しないとダメなのかも
- Xcodeに、リモートリポジトリを設定する。
- Source Controlメニュー → repository名 - Branch名 → Configure repository名... と選択して、
- Remotesタブを選択、+をクリックして、Add Remote... を選択
- Remoteリポジトリとして、適当な名前で、githubのアドレスを指定して、Add Remoteボタンを押す
- これで指定した名前で、 リモートリポジトリが登録された
- Localのリポジトリを、githubにpushする
- ターミナルで、プロジェクトディレクトリに移動してから、以下のコマンド
$ git push https://github.com/username/sk_block.git master
Username for 'https://github.com': username
Password for 'https://username@github.com':
fatal: loose object ************************ (stored in .git/objects/02/************************) is corrupt
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
fatal: write error: Bad file descriptor
- Source Controlメニュー→Pushしてみる
- 登録しておいた、リモートリポジトリ名を選択して、Pushする
- githubに、Sign In して確認してみると、登録されている。。
- もしかしたら、ターミナル操作は不要で、これだけで良いのかも。でもパスワードは必要な気がするしなぁ。
- 自分が、いろいろ調べて理解した範囲の、バージョン管理システムGitの仕組み
- CVSとかサブバージョンみたいな、バージョン管理システムとの大きな違いは
- 従来のバージョン管理システムは、オリジナルの差分を保存する感じだけど、
- Gitは、スナップショットを取っていく感じで、それそれのコミットの独立性が高い
- 水色で示す部分が、Localにあるので高速、ほとんどの操作がLocalで完結する
- リモートサーバと接続されていなくても、問題なくバージョン管理出来る
- Indexにステージングしてから、コミットすることで、変更内容を整理してから保存できる
- 但し、XcodeのCommitは、add+commitみたいなので、そのような指定は出来ないみたいだが
- 最新のコミットは、デフォルトではmasuterという名前で、
- Commitしていくと、masterは最新のコミットを示すように移動していく
- Branchっていうのは、最新のコミットに別名を付けるような感じで、
- Branchした時点では、masterと同じものを指しているが、
- Commitすると、元のコミットがBranchで付けた名前、新しいコミットがmasterとなる
[top]
[top]
[プログラムの部屋に戻る]