Android Studio最速入門~効率的にコーディングするための使い方

第24回 バージョン管理 ─GitとGitHub連携

この記事を読むのに必要な時間:およそ 6 分

Gitリポジトリに対する操作

先ほどの操作でプロジェクトがGitリポジトリと連携されたので,実際にファイルを追加し,それをリポジトリにコミットしてみましょう。

リポジトリにファイルを追加する

方法はいくつかあります。筆者が気に入っているやり方は「Changesツールウィンドウ」「Unversioned Files」「Default」にドラッグ&ドロップするやり方です。

図8 ⁠Changesツールウィンドウ」からファイルを追加する(クリックすると動きがわかります)

「⁠Changesツールウィンドウ」からファイルを追加する` &title=`図8 ⁠Changesツールウィンドウ」からファイルを追加する` &width=`400` />

その他のやり方だと「Projectツールウィンドウ」「Navigation Bar」<PROJECT_HOME>を選んだ状態で以下の操作を行う方法があります。

  • "VCS Operations Popup" から "Add to VCS" を実行する
  • コンテキストメニューから「Git → Add to VCS」を実行する

図9 ⁠Projectツールウィンドウ」のコンテキストメニューからファイルを追加する

図9 「Projectツールウィンドウ」のコンテキストメニューからファイルを追加する

Git連携の設定直後のように,すでにある程度ファイルができている場合は,上記のような操作をしますが,Git連携後にAndroid Studio上でファイルを作成した場合,都度「Gitリポジトリにも追加するか?」といった旨のダイアログが登場するようになります(削除や移動,コピーなども同様です⁠⁠。

図10 ファイル作成時に登場するVCS連携するかどうかの確認ダイアログ

図10 ファイル作成時に登場するVCS連携するかどうかの確認ダイアログ

※ダイアログの「Remember, don't ask again」をONにすると,以降問い合わせてこなくなります。筆者は小心者なので,ここをONにしたことはありません(ONにしてしまった場合,⁠Preferences / Version Control / Confirmation」で元に戻せます⁠⁠。

[コラム]リポジトリに登録するファイル/しないファイル

Android Studioが作成するプロジェクトは,Git連携することを想定してか初めから .gitignoreファイルが付いてきます。このファイルの内容はリスト2の通りです。

リスト2 <PROJECT_HOME>/.gitignoreの内容(初期設定)

.gradle
/local.properties
/.idea/workspace.xml
.DS_Store

リスト3 <PROJECT_HOME>/<MODULE_HOME>/.gitignoreの内容(初期設定)

/build

少なくとも今回は,この.gitignoreに従ってそれ以外の全てのファイルをリポジトリに登録します。むろん,Android Studioのプロジェクト設定ファイル群<PROJECT_HOME>/.idea/も登録します。

「IDE固有のプロジェクト設定ファイルをリポジトリに登録するか否か」はそれだけでも宗教戦争を起こす重大なテーマですが,今回はあまりこだわらず登録可能なファイルは素直に登録していきます。プロジェクト設定ファイルの扱いについては,この.gitignoreの内容と合わせて,後の回で考察します。

.gitignoreの他にAndroid Studioが認識している無視ファイル(やディレクトリ)というものが存在します。

除外ディレクトリ(Excluded Folders)
Project Structureで除外ディレクトリ(Excluded Folders)に指定しているディレクトリはAndroid Studioに「存在しない」と認識されているため,Android StudioからのVCS操作の対象になることはありません。
v0.2.10あたりから,またProject Structureが封印されましたが,以前調べた除外ディレクトリは第5回を参照してください。
無視ファイル(Ignored Files)
「Preferences / Version Control / Ignored Files」に登録されているファイルやディレクトリはVCS操作の対象から外れます。ちなみに,この設定はプロジェクトごとに保有できます。

図11  ⁠Preferences / Version Control / Ignored Files」設定画面

図11  「Preferences / Version Control / Ignored Files」設定画面

※この画面は「Changesツールウィンドウ」「Configure Ignored Files」と同じものです。

ここの初期設定の内容と.gitignoreの内容が一致していないのが気になるのですが,今は深くは考えずに進みます。
IDEレベルでの無視ファイル
前述した無視ファイル(Ignored Files)はプロジェクト単位に定義するファイル群でしたが,その他にIDEレベルで定義している無視ファイルというのがあります。設定箇所は「Preferences / File Types」の一番下にある「Ignore files and folders」です。

図12 ⁠Preferences / File Types」設定画面

図12 「Preferences / File Types」設定画面

脈絡のない設定箇所でかつ非常に目立たない場所にあるため,気付くほうが珍しいくらいの設定項目です。ここに定義されたファイル(やディレクトリ)もAndroid Studioにとっては存在しないものと見なされます。

これらの無視ファイル群はAndroid Studioが認識しているだけで,特定のバージョン管理システムの無視ファイル設定とは連動しません。たとえば,コマンドラインやAndroid Studio以外の専用クライアントからGitリポジトリを操作する場合は,.gitignoreに定義している情報だけが無視する対象になります。

著者プロフィール

今井勝信(いまいまさのぶ)

システムエンジニア。日本ユニシス株式会社所属。仙台在住。

Android開発はまったくやったことがないけれどIntelliJ IDEAが大好き。

Twitter: @masanobuimai