android - 如何确保 .gitignore 适用于同一存储库中的多个 Android 项目
问题描述
我的问题类似于这篇文章中概述的问题,但解决方案没有帮助。我基本上有一个 Github 存储库,其中包含一大堆不同的文件夹/目录,每个文件夹/目录都包含一个单独的 Android 项目。
一个这样的项目的结构看起来像 MyTeamRepo -> MyAndroidProject -> app
通常,如果它只是一个 Android 项目,将 .gitignore 扔到 /gradle 目录中会起作用,但在我的情况下它不起作用。
这是我的 .gitignore 中当前的内容:
# Built application files
*.apk
*.ap_
*.aab
# Files for the ART/Dalvik VM
*.dex
# Java class files
*.class
# Generated files
bin/
gen/
out/
# Gradle files
.gradle/
build/
# Local configuration file (sdk path, etc)
local.properties
# Proguard folder generated by Eclipse
proguard/
# Log Files
*.log
# Android Studio Navigation editor temp files
.navigation/
# Android Studio captures folder
captures/
# IntelliJ
*.iml
.idea/workspace.xml
.idea/misc.xml
.idea/tasks.xml
.idea/gradle.xml
.idea/assetWizardSettings.xml
.idea/dictionaries
.idea/libraries
.idea/caches
# Android Studio 3 in .gitignore file.
.idea/caches/build_file_checksums.ser
.idea/modules.xml
# Keystore files
# Uncomment the following lines if you do not want to check your keystore files in.
#*.jks
#*.keystore
# External native build folder generated in Android Studio 2.2 and later
.externalNativeBuild
# Google Services (e.g. APIs or Firebase)
google-services.json
# Freeline
freeline.py
freeline/
freeline_project_description.json
# fastlane
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
fastlane/test_output
fastlane/readme.md
# Version control
vcs.xml
# lint
lint/intermediates/
lint/generated/
lint/outputs/
lint/tmp/
lint/reports/
我的问题是,每次我对 Android 项目进行任何更改时,我仍然会在子文件夹中的任何地方弹出这些 .idea 和 .gradle 文件,当我尝试从 Github 中提取更改时会导致各种合并冲突。
我还认为部分问题在于 .idea 之前已提交到 Github,现在我一直在跟踪它。
我需要采取哪些步骤来彻底清理我的存储库并确保 .gitignore 正常工作?
解决方案
如果您想忽略树中任何位置的文件,请使用类似
**/.idea/modules.xml
并且无论.idea
目录在哪里,该modules.xml
文件都将被忽略。