Android StudioはVCS(Version Control System:バージョン管理システム)を使って、プロジェクトの変更履歴の管理が可能です。
Android Studioで利用可能なVCSはいくつかありますが、Gitを取り上げて、ローカルリポジトリの構築とコミット(履歴の登録)の方法を紹介します。
※環境:Android Studio Electric Eel | 2022.1.1
※Git自体の説明は行いません。
目次
Gitのインストール
Android Studioはリポジトリを操作するためのGitクライアント機能を持ちません。ですので、別途、Gitのインストールが必要です。
Android StudioはここでインストールしたGitコマンドを内部で呼び出します。
Gitのホームページから自分のOS環境にあった物をダウンロード&インストールしてください。
私の場合は、普段使いのOSがWindowなのでWindows版をインストールしました。※’23.01時点でGit Ver 2.39.1が最新版
インストールが終わったら、ターミナル(Windowsのターミナルでも可)を開いてバージョンを確認しておきましょう。
> git --version
git version 2.39.1.windows.1
また、Android StudioのSettingsから、Gitコマンドのパスが正しいことを確認しておきましょう。
Windows標準のプログラム置き場(C:\Program Files)にインストールしていれば、自動的に検出されているはずです。
標準と異なる場所へインストールした場合は、パスを変更してください。
Git Configurationの設定
Gitを使い始めるための前準備として、Git Configurationの設定を行います。
ユーザ名とメールアドレス
ユーザ名とメールアドレスを登録します。
> git config --global user.name ユーザ名 > git config --global user.email メールアドレス
リポジトリ内の変更履歴に、ここで指定したユーザ名とメールアドレスが付加されます。
「誰による変更なのか?!」を明確にするためです。
例えば、チーム(複数人で)開発を行っているとします。チーム開発では、コードレビューを行う機会があると思いますが、「誰による変更なのか?!」が不明だと、変更の理由を説明する人が特定できません。そのため、変更内容の検証があいまいになり、品質の高いレビューが保てなくなります。
Configurationのレベル
Git Configurationは3つのレベルがあります。
レベルによりパラメータの影響範囲が異なります。影響範囲を考慮してパラメータを指定してください。
レベル | オプション | configファイルの場所 | 優先度 | 影響範囲 |
---|---|---|---|---|
System | --system | /etc/gitconfig(Linux) インストール先/etc/gitconfig(Win) | システムが所持する全リポ | |
Global | --global | ~/.git/config(Linux) C:\Users\ユーザー\.gitconfig(Win) | ユーザが所持する全リポ | |
Local | --local | 対象のリポ/.git/config | 対象のリポのみ | |
※リポ:リポジトリ ※優先度:各レベルへ同一パラメータが指定されていた場合 ※SystemレベルのConfigrationの編集は管理者権限(Root権限)が必要 |
ちなみに、Gitコマンドを使って直にConfigファイルの編集・参照が行えます。
> git config --global --edit # 編集、Globalの場合 > git config --local --list # 参照、Localの場合
ローカルリポジトリの構築
ローカルリポジトリの構築はとても簡単です。
プロジェクト(例の場合:「SampleApp」プロジェクト)を開き、「Enable Version Control Integration」からGitを選択するだけです。
これにより、プロジェクトにローカルリポジトリが構築されます。そして、プロジェクトのトップフォルダ(例の場合:「SampleApp」フォルダ)がワークツリーのルートになります。
※ワークツリー:Gitの管理下に置かれた作業(ファイル追加・削除・修正)を行う場所
これらは、Gitコマンドを操作した場合の”git init”と同等な動作です。
> cd SampleApp SampleApp> git init
プロジェクトのトップフォルダ内を参照すれば、ローカルリポジトリが確認できます。
構築に際して、「.gitignore」ファイルも作成されています。
Android Studio用にカスタマイズされた「.gitignore」になっています。必要があれば、変更履歴の追跡から除外したファイル(またはフォルダ)を追加してください。
*.iml .gradle /local.properties /.idea/caches /.idea/libraries /.idea/modules.xml /.idea/workspace.xml /.idea/navEditor.xml /.idea/assetWizardSettings.xml .DS_Store /build /captures .externalNativeBuild .cxx local.properties
./.gitignore ./.idea/.gitignore ./app/.gitignore
/build
Commitペイン
ローカルリポジトリの構築が終わると、Android Studio上に「Commitペイン」(Tool Windowsの一つ)が現れます。※ペイン:分割された表示領域
Commitペインは、ワークツリーのルート(例ではSampleAppフォルダ)以下にあるファイルの状態を表示します。追加・削除・修正があったファイルがリスト表示されることから、「Change List」と呼ばれます。
ファイルの状態は図のように色分けされています。
このCommitペインからコミット(履歴の登録)が可能です。方法は後述します。
初回のコミット
初回のコミットは次の手順で行います。
(1)履歴の追跡対象へ追加
リポジトリの構築直後は、すべてのファイルが履歴の追跡対象になっていません。ですので、ファイルは「Unversioned Files」と表示された状態に属しています。
Gitで管理したいファイルを履歴の追跡対象へ追加します。
具体的には、下記の操作を行います。
(1)Gitで管理したいファイルをチェック
(2)ドラッグ&ドロップでChanges属性へ追加
これらは、Gitコマンドを操作した場合の”git add”と同等な動作です。
SampleApp> git add -A -- チェックしたファイル群
(2)コミットの実施
Changes属性にあるファイルはコミットが可能です。
Changes属性のファイルをメッセージを付けてコミットします。
具体的には、下記の操作を行います。
(1)コミットしたいファイルをチェック
(2)メッセージを入力
(3)Commitボタンの押下でコミット
ファイルにWarningsやTODOが存在する場合は、確認が施されます。
問題がなければ、下記の操作を行います。
(3′)Commit Anywayボタンの押下でコミット
これらは、CGitコマンドを操作した場合の”git add”ならびに”git commit”と同等な動作です。
SampleApp> git add -A -f -- チェックしたファイル群 SampleApp> git commit -F コミットメッセージが書かれたファイル -- ※addとcommitはCommitボタンの押下で一度に実行
変更のコミット
変更(前回からの差分)のコミットは次の手順で行います。
(0-a)新規ファイルの作成
新規にファイルを作成すると、作成した時点で「履歴の追跡対象へ追加(commit add)するかどうか?」を問われます。
Cancelを行えば、履歴の追跡が行われなくなります。
履歴の追跡対象へ追加しない限り、リポジトリへ登録されないファイルのままです。
(0-b)既存ファイルの修正
既存のファイルを修正すると、履歴の追跡対象であれば、Gitにより修正が認識されます。
(1)履歴の追跡対象へ追加
作成時に履歴の追跡対象へ追加しなかったファイルは、「Unversioned Files」と表示された状態に属しています。
Gitで管理したいファイルを履歴の追跡対象へ追加します。
具体的には、下記の操作を行います。
(1)Gitで管理したいファイルをチェック
(2)ドラッグ&ドロップでChanges属性へ追加
(2)コミットの実施
Changes属性にあるファイルはコミットが可能です。
Changes属性のファイルをメッセージを付けてコミットします。
具体的には、下記の操作を行います。
(1)コミットしたいファイルをチェック
(2)メッセージを入力
(3)Commitボタンの押下でコミット
関連記事: