はじめに
チーム開発においてGitやSVN等でソースコードの管理をする際、プロジェクトフォルダ内にはリモートリポジトリにコミットすべきではない(コミットが非推奨)のファイルやディレクトリが存在するので、まとめました。
また、内容はJavaのSpring Bootでの開発を前提としていることをご了承ください。
開発環境
項目 | バージョン |
---|---|
言語 | Java 21 |
フレームワーク | Spring Boot |
ビルドツール | Maven |
IDE | IntelliJ IDEA 2024.1 (Community Edition) |
git | version 2.33.0.windows.2 |
コミットすべきでないファイル
1.ユーザー名やパスワードなどの秘密情報が入力されるファイル
- application.propeties (DBのユーザー名、パスワード)
- dataSources.ids(IntelliJ IDEA 13以前) (DBのパスワード)
- datasources.xml(IntelliJ IDEA 13以前) (DBのパスワード)
- 署名付きビルドを生成する Android アーティファクト (キーストアのパスワード)
2.チームの開発で必要ではないファイル
- *.class
- *.log
3-1.チーム内で異なるIDEを使用している場合
チーム内で異なるIDEを使用している場合は、IDE固有のディレクトリを外すことを検討した方が良いかもしれません。
- .idea/ (IntelliJ IDEA固有のディレクトリ)
- .settings/(Eclipse固有のディレクトリ)
- *.classpath (Eclipse固有のファイル)
3-2.チーム共通でIntelliJ IDEAを使用している場合
公式ドキュメントによると、以下のように設定するとベストプラクティスのようです。
共有すべきファイル
- .ideaディレクトリ内のworkspace.xml、usage.statistics.xml、tasks.xml 以外のファイル
- すべての.imlモジュールファイル (IntelliJ IDEAの場合)
共有から除外しても良いファイル
- GradleまたはMavenベースのプロジェクトにおける*.imlファイル、.idea/modules.xmlファイル(プロジェクトファイルから自動生成される為)
- gradle.xml (こちらを参照)
- ユーザー辞書フォルダ (他の開発者が同じ名前を持っている場合の競合を避けるため)
- .idea /libraries下の.xmlファイル(Gradle または Mavenプロジェクトから生成された場合)
↓公式ドキュメント
.gitignore
.gitignoreで指定されたファイルは、次回のコミット以降にコミット対象から外すことができます。筆者環境では以下のような記述になりました。
.gitignore
target/classes/application.properties
src/main/resources/application.properties
*.class
*.log
.idea/workspace.xml
*.iml
.gitignoreを先にコミットすれば、以降はUnversioned Filesの一覧に表示されなくなります。
まとめ
.gitignoreに適切なファイル設定をして、きれいなリポジトリを目指しましょう。追加項目があればまた更新いたします。