はじめに

Swiftも安定期に入り、どんどんと間口が広がっているiOS開発ですが、それにあわせてじわじわとXcodeも進化してきています。
今回はそんなXcodeとGitHubの連携に関して意外と注目されていない便利機能について紹介します。

対象

  • iOS開発でGitHubを使っている人
  • これからiOS開発をするにあたってGitHubを使ってみたい人
  • Xcodeで開発しているあまねく人

実はこんなところからできるGitHub連携

そもそもGitHubって〜という部分はさまざまな記事があるので省かせていただきます。

さて、さっそくはじめにXcode9って実はこんなところからできるんだよ!というところから始めます。
ぜひすでにGitHubを利用している人は考えてほしいのですが、パソコンを新しくした時GitHubを使うにあたってまずしなければいけない操作とは何でしょうか?

色々思いつくこともあると思いますがこの2つのコマンドです。

$ git config --global user.name "Hoge Fuga"
$ git config --global user.email hogefuga@hogehoge.com

意外と忘れてしまいがちですがパソコン自体のgitの設定です。実はXcode9ではこの時点からXcodeだけで出来てしまうんです。それが以下のスライドの手順になります。

welcome_and_github.002.jpeg

welcome_and_github.003.jpeg

これだけです。簡単ですね。こうすることでgitの設定が出来てしまいました。
そしてGitHubと実際に紐付けるためにはこのあと以下のステップをふみます。

welcome_and_github.004.jpeg

welcome_and_github.005.jpeg

welcome_and_github.006.jpeg

AppleIDとおんなじようにログインできてしまいました。しかも最後のスクショからわかるようにHTTPSとSSHを選ぶことが出来ます。そしてSSHモードにすると下にSSHキーに関してどうするかという設定項目が出てくるのでターミナルを開かずともSSH連携をすることも可能です。

これでもうGitHub連携ができてしまいました。

リポジトリをつくろう

続いてリポジトリの作成です。順を追って説明していきます。

その1 gitリポジトリとしての初期化

普段なら

$ git init

とするところ、これもXcode上で実現可能です。
まずまだプロジェクト時代も作ってない人、このひとはこの画面でCreate Git repository on my Macのチェックが入っているかを確認すればオーケーです。出てこない!という人はOptionsを押してみてください。

image.png

次にすでにプロジェクトはあるけどリポジトリになってないよーという人はこのメニューのCreate Git Repositories...を選択します。

image.png

これだけです。簡単ですね。

その2 リモートリポジトリを作成/紐付けをしよう

続いてはGitHub上にリモートリポジトリを作成します。ここでさぁWebブラウザで...となった人、まだ待ってください。
こちらもXcode上だけで可能です。

あたらしくリモートリポジトリを作成する際は以下の部分を選択していきましょう。

welcome_and_github.008.jpeg

すると以下のような画面が出てきます。必要な情報を入力したらCreateで完了です。

welcome_and_github.009.jpeg

ここまででリポジトリの作成から紐付けまで終わってしまいます。簡単ですね。

もしすでに作成されているリモートリポジトリと紐付けたい場合は先程のCreate "Hoge" Remote on GitHub...の下にあるAdd Exsisting Remote...を選択することで簡単にできます。

GitHubにアップ

紐付けが終わった時点でGitHubにはInitial Commitがされています。ですが実際の作業内容を保存するにはもちろんコミット&プッシュが必要なのでそちらもXcode上でやっていきます。

コマンドでやると、

作業する
↓
$ git add .$ git commit -m "add fuga"$ git push origin master
↓
次の作業へ

が普段のフローですね。(個人開発での利用を想定しているのでpullなどは含めていません。また全てをaddしてしまっているなど細かい点は気にしないでください。あくまで一例です。)

これはもともとちょっと前からもあった機能ですが、この部分をかなり簡略化することが可能です。
具体的には次のようにやります。

welcome_and_github.010.jpeg

まずaddの過程は一旦気にせずCommitをクリックしましょう。すると以下のような画面が出てきます。

welcome_and_github.011.jpeg

左にコミットするファイルの一覧が出てきて、ファイルをクリックすると差分が見れます。横のチェックマークを外しておくとそのファイルはコミットされません(つまりここがaddの操作に対応します。)
下側にある大きなテキストボックスにコミットメッセージを含めることができます。

そして重要なのは左下です。ここをチェックしておくとコミットと同時にPushまでしてくれます。その横でどのブランチに上げるかも選択可能です。

すべての設定が終わったら右下のボタンをクリックして終了です。コミットメッセージ以外文字を打たなくていいのはかなりの効率化になるのではないでしょうか。

まとめ

以上GitHubとXcodeに関しての簡単な使い方を説明しました。相当複雑な操作以外基本まかなえるのでぜひ活用してみてください。

FAQ

ブランチを切りたいときはどうする?

リポジトリをつくるときに利用したXcodeの左にあるSource Control navigatorで可能です。

image.png

こんな感じに管理できます。少し注目してほしいのがfeatureのところで、これ実はfeature/hogeというようなブランチを作るとこんなふうにフォルダとして表示してくれるんです。便利ですね。

さらにブランチを選択するとメイン画面に各ブランチのコミット履歴が表示されて、コミットをダブルクリックすればファイルの差分を確認することが出来ます。ひょっとしたらGitHubで見るよりも便利かもしれません...!

マージや過去に戻りたいときは?

これもSource Control navigatorで可能です。コミットを右クリックしたりブランチを右クリックするとマージのオプションやチェックアウトの項目が出てきてくれます。

その他に

  • コミットメッセージのコピー
  • コミットした人へのメール作成
  • 特定のコミットにタグをつける
  • 特定のコミットからブランチを切る
  • コミットやブランチのGitHub上の該当ページに飛ぶ

などの機能が確認できました。

もしかしてターミナルいらない...?

僕自身ターミナルが好きなので一概に「はい。」とはいえないところですが、コンフリクトした時の処理をAtomやVSCode並にできるようになったり、うまくrebaseをGUIで直感的にできるようになったりするとiOSでgitを使うときはXcode+GitHubオンリーで行けるとなる日も近いのかもしれませんね。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.