0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AndroidStudioでの.gitignoreの書き方

Posted at

はじめに

アプリケーション開発において、例えばAPIキーをgithub上に公開したくない場合などに、APIキーの書かれているファイルのパスを.gitignoreに記述してgitの管理下から外す方法をとると思います。
今回は、AndroidStudioにおける.gitignoreの書き方を簡単にまとめようと思います。(VSCode等でも書き方自体は当然同じです)
当時初心者だった私はただファイル名だけをベタ書きするわ、パスが上手く通せないわでてんやわんやしてしまった記憶があります......。

書き方

image.png
今回は上画像の通り、プロジェクトレベルの.gitignoreに(.gitignoreが2つある件については後述)、apikeyディレクトリ内にあるApikey.ktをgitの管理下から外していきます。
※ファイルを新規作成した際にaddしますか?みたいなポップアップが出ますが、管理下に置きたくないファイルは間違えてaddしないように注意!
image.png
プロジェクトレベルの.gitignoreには既に色々書かれていますが、ここにApikey.ktまでの .gitignoreから見たパスを記述していきます。
結果的に、以下のような相対パスになります。
app/src/main/java/com/websarva/wings/gitignoretest/apikey/Apikey.kt
ここで1つややこしい点なのが、com.websarva.wings.gitignoretestの部分ですね。ここは . を/に置き換えましょう。
image.png
書き終わったらCtrl+Sしてみると、Apikey.ktの文字が赤色からオレンジ色っぽく変化すと思います。(画像の通り結構分かりにくい......)
image.png
image.png
色が変われば、無事.gitignoreにファイルを認識させることに成功です。

ちなみに、モジュールレベル(appディレクトリ内)の.gitignoreに記述する場合は、
src/main/java/com/websarva/wings/gitignoretest/apikey/Apikey.kt
と記述します。

10秒で終わる書き方

前節ではディレクトリ構成を意識してパスを書きましたが、AndroidStudioには該当ファイルのパスをコピーするという機能があります。
この機能自体は特に珍しいものでもありませんが、AndroidStudioでは目的に合わせた相対パスもコピーすることができます。
Apikey.ktを右クリックして、Copy Path/Reference...を選択すると以下のような画面が出ると思います。
image.png
ここでPath From Repository Rootを選択し、プロジェクトレベルの.gitignoreに貼り付けると、それだけで記述が完了します。

.gitignoreの位置について

image.png
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キーを書き込むという案もあるということを知りました。
気になる方はそちらも調べてみると良いと思います。(少し手間がかかりますが、より簡潔になるかもしれません)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?