Studioの連携を紹介します。第3回で紹介したサンプルコードが手頃なので、このプロジェクトをそれぞれのバージョン管理システムに対応させていきます。手始めに最近もっとも人気があるGitとGitHubについてです。GitやGitHubについては多くを説明しませんので、他の記事やWebリソースで学習しておいてください。Studioは標準でGitやGitHubをサポートしていますが、最低限以下の準備を行っておいてください。Gitのコマンドラインツール(git)を導入しておくGitHubのアカウントを用意しておくコマンドラインツールはGitの公式サイトから、それぞれのプラットフォームに対応したものをダウンロードしてインストールしておいてください。Studio側は特に設定は要りません。gitコマンドの場所を指定しておいてください。Studioからgitコマンドを実行して、あたかもシームレスに連携できているようにみせる」です。Studio自体にGitクライアントの機能はありません。Studioではなく、gitコマンドに対して行います。Studioのプロキシ設定はgitコマンドに影響しません⁠)⁠。Studioの他にもうひとつGitクライアントを用意しておきましょう。StudioのGitサポートは万能ではないので、代替として専用のクライアントを用意しておいたほうが断然良いです。Studioで済まそうとするとストレスの元なので「面倒だな」と思った操作はとっとと見切りをつけてコマンドラインか専用クライアントで作業したほうが簡単です。GitのせMacの場合はSourceTree、Windowsの場合はSourceTreeかTortoiseGitあたりがオススメです。プロジェクトをGit連携するGit連携するプロジェクトが無い場合はまずはそのプロジェクトを作成しましょう。Git連携は望んだときにいつでもできるので、すでに作成済みのプロジェクトがあればそれを用いても構いません。Integration...」を実行し「Git」を選びます。Repository...」でも同じ結果になります。Integration"は必ずプロジェクトルート(<PROJECT_HOME>)がGitリポジトリの場所になります⁠)⁠。Repository..."ではリポジトリの場所を指定するこれで、プロジェクトがGit連携状態になりました。Controlツールウィンドウ」が表示されます。StudioGit連携の場合、ステータスバーの右端にブランチ名が表示されます。この地味ぃなインターフェイスは意外に便利なので、存在を覚えておいてください。Control」で確認することができます(<PROJECT_HOME>がGitに設定されていることがわかります⁠)⁠。※<PROJECT_HOME>が絶対パスになっているのが気に入りませんが、内部的には相対パスで管理しているようです。ちなみに、この状態はまだ何もGitリポジトリにAddされていませんが、プロジェクト自体はGitリポジトリになっています。先ほどの操作でプロジェクトがGitリポジトリと連携されたので、実際にファイルを追加し、それをリポジトリにコミットしてみましょう。リポジトリにファイルを追加する方法はいくつかあります。Files」を「Default」にドラッグ&ドロップするやり方です。Bar」で<PROJECT_HOME>を選んだ状態で以下の操作を行う方法があります。Studio上でファイルを作成した場合、都度「Gitリポジトリにも追加するか?」といった旨のダイアログが登場するようになります(削除や移動、コピーなども同様です⁠)⁠。again」をONにすると、以降問い合わせてこなくなります。Confirmation」で元に戻せます⁠)⁠。.gitignoreファイルが付いてきます。このファイルの内容はリスト2の通りです。<PROJECT_HOME>/<MODULE_HOME>/.gitignoreの内容(初期設定)/build少なくとも今回は、この.gitignoreに従ってそれ以外の全てのファイルをリポジトリに登録します。Studioのプロジェクト設定ファイル群(<PROJECT_HOME>/.idea/)も登録します。「IDE固有のプロジェクト設定ファイルをリポジトリに登録するか否か」はそれだけでも宗教戦争を起こす重大なテーマですが、今回はあまりこだわらず登録可能なファイルは素直に登録していきます。プロジェクト設定ファイルの扱いについては、この.gitignoreの内容と合わせて、後の回で考察します。Studioが認識している無視ファイル(やディレクトリ)というものが存在します。StudioからのVCS操作の対象になることはありません。Structureが封印されましたが、以前調べた除外ディレクトリは第5回を参照してください。Files」に登録されているファイルやディレクトリはVCS操作の対象から外れます。ちなみに、この設定はプロジェクトごとに保有できます。Files」と同じものです。ここの初期設定の内容と.gitignoreの内容が一致していないのが気になるのですが、今は深くは考えずに進みます。Files)はプロジェクト単位に定義するファイル群でしたが、その他にIDEレベルで定義している無視ファイルというのがあります。folders」です。脈絡のない設定箇所でかつ非常に目立たない場所にあるため、気付くほうが珍しいくらいの設定項目です。Studioにとっては存在しないものと見なされます。Studioが認識しているだけで、特定のバージョン管理システムの無視ファイル設定とは連動しません。Studio以外の専用クライアントからGitリポジトリを操作する場合は、.gitignoreに定義している情報だけが無視する対象になります。リポジトリの変更を取りやめるリポジトリへのファイルの追加や変更、削除を取りやめ元の状態に戻したい場合は"Revert"を実行します。"Revert"の実行方法は次の3通りほどありますので、各自使いやすい方法を選択してください。「⁠Changesツールウィンドウ」の「Revert」アイコン"Revert"を実行すると図14のようなダイアログが表示されます。Changes」ダイアログこのダイアログでチェックが付いているファイル(やディレクトリ)が取りやめ(Revert)の対象になります。このチェックボックス付きのファイル一覧は、VCS連携操作でちょくちょく出てくるので、使い方を覚えておいてください(要するにチェックが付いたものだけが処理対象となります⁠)⁠。リポジトリにコミットするリポジトリに対する変更をコミットしてみましょう。コミットの方法も多岐にわたります。思いついただけで、これだけありますので、使いやすそうな方法を覚えてしまいましょう。Directory」を実行するコミットを実行すると図15のようなダイアログが表示されます。コミットコマンドを実行した場所によって、ファイル一覧のチェックボックスが一部のファイルにしか付いてない場合がありますのでご注意ください(意図的に特定のファイルだけをコミットすることができます⁠)⁠。Changes」ダイアログの詳細については後の回で紹介するので、とりあえずコミットしてみましょう。画面下側にある「Comment」欄にコミットログを記述します。Commit」はコミット前処理を指定します。できて便利なのですが、面倒も多いので当面は全部OFFにしておいてください。コミットログを記述したならコミットを実行しましょう。コミット実行は画面右下にある「Commit」ボタンから行います。このボタン、なんかちょっとおかしいです。不思議なCommitボタンこの「Commit」ボタン、ボタンでありながらプルダウンメニューとして振る舞います。CVSやSubversionといった中央型のバージョン管理システム向けのインターフェイスを分散バージョン管理システム向けにも無理矢理使い回したため、このようなトンデモなインターフェイスができあがりました。dialogs」をOFFにすることで、この変なインターフェイスを解除することができます。Changes」ダイアログのボタン群は図18の通りです。ひいき目に見てもこちらのほうがわかりやすいです。dialogs」が、この「Commit」ボタンのためだけにあるオプションというのが可笑しくもあります。dialogs」をOFFにした場合リポジトリのコミットログをみる無事にコミットができたなら、そのログを確認してみましょう。コミットログは「Changesツールウィンドウ」の「Log」タブで確認することができます。Controlツールウィンドウ」に表示されます(若干、機能が劣ります⁠)⁠。リポジトリをGitHubに公開するこのままではプロジェクトが単にGitリポジトリになっただけなので、このリポジトリをGitHubに公開してみましょう。GitHubに公開するにあたり、事前にGitHubに該当リポジトリを作成しておく必要はありません。必要なのはGitHubのアカウントだけです。GitHub」を実行します。Studioから初めてGitHubにアクセスする場合は、図22のような認証ダイアログが表示されるので、適切なアカウントでGitHubにログインしてください。Studioのキーストアに格納するためマスターパスワードを問い合わせてきます。このマスターパスワードは次回以降のアクセスの際に用いますので、忘れずに覚えておいてください。Passwords」で設定します。参考までに、次回以降GitHubにアクセスすると図24のようにマスターパスワードの問い合わせだけで、それ以外のダイアログは省略されます。Password」ダイアログ(確認用)初回は長い道のりを辿りますが、ここまできてやっとプロジェクトをGitHubに公開するダイアログが表示されます。name)はプリセットしてありますが、後でチェックアウト(クローン)することを考慮すると、今のプロジェクトと同じ名前にしておくのが無難です。プロジェクト名と概要(Description)を入力し終えたなら「Share」ボタンを押すとGitHubに公開されます。具体的には以下のことを行います。remote)し、GitHubのリポジトリにpushします。これでGitHubへの公開はおしまいです。うまくいくと、このようにものすごく簡単にできます。StudioからGitHub連携がうまくいかないケースというがあります。StudioのGitHub連携はとっとと見切りを付けてコマンドラインから連携することです。Studioからターミナル操作ができるようになりました(Windows版ではコマンドプロンプトが使える⁠)⁠。これを利用して、まずGitHubに該当プロジェクトを作成します(仮に「MyFirstAppProject」としましょう⁠)⁠。Studioの「Terminalツールウィンドウ」からリスト4のようなコマンドを実行するだけでいいです。https://github.com/masanobuimai/MyFirstAppProject.gitリモートリポジトリさえ設定できてしまえば、あとは普通にpush/pullができるようになります。別に「Terminalツールウィンドウ」を使わず、SourceTreeなどの専用クライアントから実施しても同じですけど......(気分の問題ですね⁠)⁠。Gitのリモートリポジトリを設定する機能はありません。GitHub"だけだったのです(それもそれで変な話ですけどね⁠)⁠。Studio以外のGitクライアントの力を借りるしかないとも言えます。GitHubからプロジェクトをチェックアウト(クローン)するようやっとGitHubにリポジトリを公開できました。今度はGitHubのリポジトリからローカルにチェックアウト(クローン)してみましょう。自宅のPCと会社のPCとでリポジトリを共用する、といったケースを想定するとわかりやすいと思います。Studioのウェルカム画面から行います。Control」を選び、ポップアップから「GitHub」を選択します。URL」からチェックアウトしたいリポジトリURLを選択します。URL」のプルダウンリストに既存のGitHubリポジトリが一覧表示されるので、そこから任意のリポジトリURLを選択するだけで済みます。Repository」ダイアログが出るまでものすごく時間がかかります(気長に待ちましょう⁠)⁠。GitHubチェックアウトの流れ(クリックすると動きがわかります)「Clone」ボタンを押すとチェックアウト(クローン)を開始します。それが済むと、そのままプロジェクトを開くかと聞いてくるので、指示に従ってプロジェクトを開きましょう。Studioのプロジェクト設定ファイルも登録してあるので、諸条件が満たされていれば(?)難なくプロジェクトを開くことができると思います(この「諸条件」も後の回で説明します⁠)⁠。GitHubに公開する時と同じく、ファイアウォール内だとGitHubのリポジトリ一覧取得に失敗する事があります。Control」で「Git」を選択しましょう。Repository」ダイアログが表示されます。URL」のブルダウンリストに何も表示されない事だけです。今回紹介した内容はGitとGitHub連携の初歩の初歩だけなので、次回はもう少し踏み込んだGit/GitHub連携の使い方について紹介します。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。