はじめに
アプリケーション開発において、例えばAPIキーをgithub上に公開したくない場合などに、APIキーの書かれているファイルのパスを.gitignoreに記述してgitの管理下から外す方法をとると思います。
今回は、AndroidStudioにおける.gitignoreの書き方を簡単にまとめようと思います。(VSCode等でも書き方自体は当然同じです)
当時初心者だった私はただファイル名だけをベタ書きするわ、パスが上手く通せないわでてんやわんやしてしまった記憶があります......。
書き方
今回は上画像の通り、プロジェクトレベルの.gitignoreに(.gitignoreが2つある件については後述)、apikeyディレクトリ内にあるApikey.ktをgitの管理下から外していきます。
※ファイルを新規作成した際にaddしますか?みたいなポップアップが出ますが、管理下に置きたくないファイルは間違えてaddしないように注意!
プロジェクトレベルの.gitignoreには既に色々書かれていますが、ここにApikey.ktまでの .gitignoreから見たパスを記述していきます。
結果的に、以下のような相対パスになります。
app/src/main/java/com/websarva/wings/gitignoretest/apikey/Apikey.kt
ここで1つややこしい点なのが、com.websarva.wings.gitignoretest
の部分ですね。ここは . を/に置き換えましょう。
書き終わったらCtrl+Sしてみると、Apikey.ktの文字が赤色からオレンジ色っぽく変化すと思います。(画像の通り結構分かりにくい......)
色が変われば、無事.gitignoreにファイルを認識させることに成功です。
ちなみに、モジュールレベル(appディレクトリ内)の.gitignoreに記述する場合は、
src/main/java/com/websarva/wings/gitignoretest/apikey/Apikey.kt
と記述します。
10秒で終わる書き方
前節ではディレクトリ構成を意識してパスを書きましたが、AndroidStudioには該当ファイルのパスをコピーするという機能があります。
この機能自体は特に珍しいものでもありませんが、AndroidStudioでは目的に合わせた相対パスもコピーすることができます。
Apikey.ktを右クリックして、Copy Path/Reference...を選択すると以下のような画面が出ると思います。
ここでPath From Repository Rootを選択し、プロジェクトレベルの.gitignoreに貼り付けると、それだけで記述が完了します。
.gitignoreの位置について
AndroidStudioでは、デフォルトで.gitignoreを用意してくれていますが、上の画像のから分かるように、なんと.gitignoreがデフォルトで2つ用意されています。
どちらに書いても、パスさえ正しければちゃんと動作するのですが、この意図についてAndroidStudio内蔵のGemini聞いてみました。
Geminiの回答(抜粋)
Android Studio で作成されるプロジェクトに、異なるディレクトリに .gitignore ファイルが 2 つ存在する理由は、主に プロジェクト全体とモジュール(またはアプリ) ごとに異なる無視設定を適用するため です。これにより、より柔軟かつ効率的に不要なファイルを Git の管理対象から除外できます。
恐らく巨大なプロジェクトを扱う際に使い分けが発生するのでしょう。正直学生同士での開発レベルではあまり意識する必要はなさそうですが、APIキーなど様々な場所で使うことが想定されるものはプロジェクトレベルの.gitignoreに書く方が良さそうです。
まとめ
- .gitignoreには、そこから見たgit管理したくないファイルへの相対パスを記述する
- Copy PathからのPath From Repository Rootをコピーしてプロジェクトレベルの.gitignoreにペーストするのが便利
- プロジェクトレベルとモジュールレベルのどちらの.gitignoreに記述するかは、その変数の影響度合いによって決めるのが良い
この記事を書いていく中で、.gitignoreへの記述の代替案として、デフォルトでgit管理から外れているlocal.propertiesにAPIキーを書き込むという案もあるということを知りました。
気になる方はそちらも調べてみると良いと思います。(少し手間がかかりますが、より簡潔になるかもしれません)