working - 對於Android Studio項目,我的.gitignore應該是什麼?




misc xml android (20)

.gitignore from AndroidRate library

# Copyright 2017 - 2018 Vorlonsoft LLC
#
# Licensed under The MIT License (MIT)

# Built application files
*.ap_
*.apk

# Built library files
*.aar
*.jar

# Built native files
*.o
*.so

# Files for the Dalvik/Android Runtime (ART)
*.dex
*.odex

# Java class files
*.class

# Generated files
bin/
gen/
out/

# Gradle files
.gradle/
build/

# Local configuration file (sdk/ndk path, etc)
local.properties

# Windows thumbnail cache
Thumbs.db

# macOS
.DS_Store/

# Log Files
*.log

# Android Studio
.navigation/
captures/
output.json

# NDK
.externalNativeBuild/
obj/

# IntelliJ
## User-specific stuff
.idea/**/tasks.xml
.idea/**/workspace.xml
.idea/dictionaries
## Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/dynamic.xml
.idea/**/sqlDataSources.xml
.idea/**/uiDesigner.xml
## Gradle
.idea/**/gradle.xml
.idea/**/libraries
## VCS
.idea/vcs.xml
## Module files
*.iml
## File-based project format
*.iws

對於Android Studio項目,我的.gitignore應包含哪些文件?

我已經看到幾個例子都包含.iml但IntelliJ文檔說.iml必須包含在你的源代碼管理中。


github.com/github/gitignore is awesome collection

Android.gitignore

# Built application files
*.apk
*.ap_

# 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/tasks.xml
.idea/gradle.xml
.idea/assetWizardSettings.xml
.idea/dictionaries
.idea/libraries
.idea/caches

# Keystore files
# Uncomment the following line if you do not want to check your keystore files in.
#*.jks

# 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

2015年7月更新:

以下是JetBrains最終消息來源

基於目錄的項目格式(.idea目錄)

默認情況下,所有最新的IDE版本都使用此格式。 以下是您需要分享的內容:

  • 項目根目錄下.idea目錄下的所有文件, 除了存儲用戶特定設置的workspace.xmltasks.xml文件
  • 所有.iml模塊文件都可以位於不同的模塊目錄中(適用於IntelliJ IDEA)

分享以下內容時要小心

  • 產生簽名版本的Android工件(將包含密鑰庫密碼)
  • 在IDEA 13及更早版本的dataSources.idsdatasources.xml可以包含數據庫密碼。 IDEA 14 解決了這個問題

您可以考慮不要分享以下內容:

  • gradle.xml文件,請參閱此討論
  • 用戶詞典文件夾(以避免在其他開發人員具有相同名稱時發生衝突)
  • 它們是從Gradle項目生成的 .idea/libraries下的XML文件

舊項目格式( .ipr / .iml / .iws文件)

  • 共享項目.ipr文件和所有.iml模塊文件, 不要共享 .iws文件,因為它存儲用戶特定的設置

雖然這些說明適用於IntelliJ IDEA,但它們對於Android Studio來說卻是100%真實的。

這是一個包含以上所有規則的.gitignore片段:

# Android Studio / IntelliJ IDEA 
*.iws
.idea/libraries
.idea/tasks.xml
.idea/vcs.xml
.idea/workspace.xml

使用Android Studio 3.0進行測試

您可能需要安裝.ignore插件。

您可以為Android自動生成.gitignore文件。 右鍵單擊文件夾並按照

然後從左側面板中選擇Android,然後單擊Generate

Android Studio將生成.gitignore文件,其中包含需要忽略的所有文件。

摘自http://menukanows.com/how-to-add-gitignore-file-in-android-project/


Compilation:

#built application files
*.apk
*.ap_

# files for the dex VM
*.dex

# Java class files
*.class

# generated files
bin/
gen/

# Gradle files
.gradle/
build/
/*/build/

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

# Windows thumbnail db
Thumbs.db

# OSX files
.DS_Store

# Eclipse project files
.classpath
.project

# Android Studio
*.iml
.idea
#.idea/workspace.xml - remove # and delete .idea if it better suit your needs.
.gradle
build/

# Intellij project files
*.iml
*.ipr
*.iws
.idea/

Github maintains useful gitignore items for various kinds of projects. Here is the list of useful gitignore items for android projects.

# Built application files
*.apk
*.ap_

# 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/tasks.xml
.idea/gradle.xml
.idea/libraries

# Keystore files
*.jks

# 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

Android Gitignore in github


To circumvent the import of all files, where Android Studio ignores the "Ignored Files" list, but still leverage Android Studio VCS, I did the following: This will use the "Ignored Files" list from Android Studio (after import! not during) AND avoid having to use the cumbersome way Tortoise SVN sets the svn:ignore list.

  1. Use the Tortoise SVN repository browser to create a new project folder directly in the repository.
  2. Use Tortoise SVN to checkout the new folder over the top of the folder you want to import. You will get a warning that the local folder is not empty. Ignore the warning. Now you have a versioned top level folder with unversioned content.
  3. Open your project from the local working directory. VCS should now be enabled automatically
  4. Set your file exceptions in File -> Settings -> Version Control -> Ignored Files
  5. Add files to SVN from Android Studio: select 'App' in Project Structure -> VCS -> Add to VCS (this will add all files, except "Ignored Files")
  6. Commit Changes

Going forward, "Ignored Files" will be ignored and you can still manage VCS from Android Studio.

Cheers, -Joost


取決於您的項目格式的維護方式:

你有兩個選擇:

  1. 基於目錄的格式(您將有一個包含項目特定文件的.idea文件夾)
  2. 基於文件的格式(配置文件為.iws.ipr

參考: http://www.jetbrains.com/idea/webhelp/project.htmlhttp://www.jetbrains.com/idea/webhelp/project.html

提交版本控制的文件取決於以上內容:

  1. 將.idea文件夾包含到版本控制中,排除workspace.xmltasks.xml
  2. 版本控制.ipr文件和所有.iml模塊文件,在存儲用戶特定設置時排除.iws文件。

參考: https//intellij-support.jetbrains.com/entries/23393067


基本上任何自動重新生成的文件。

一個好的測試是克隆你的repo,看看Android Studio是否能夠立即解釋和運行你的項目(生成缺少的東西)。
如果沒有,找到缺少的東西,並確保它被忽略,但添加到repo。

話雖這麼說,你可以舉例說明現有的.gitignore文件,比如Android文件。

# built application files
*.apk
*.ap_

# files for the dex VM
*.dex

# Java class files
*.class

# generated files
bin/
gen/

# Local configuration file (sdk path, etc)
local.properties

# Eclipse project files
.classpath
.project

# Proguard folder generated by Eclipse
proguard/

# Intellij project files
*.iml
*.ipr
*.iws
.idea/

對於Android Studio 3.0項目,請使用以下內容:

的.gitignore

.gradle
.idea
*.iml
gradle.properties
local.properties
.DS_Store
build

Gradle項目文件夾

在存儲庫克隆之後,您的(Gradle)項目文件夾中唯一應該是這種結構(至少對於我到目前為止遇到的用例):

/app
/gradle
.gitignore
build.gradle
build.properties
gradlew
gradle.bat
settings.gradle

從Android Studio開始,0.8.4 .gitignore文件在啟動新項目時自動生成。 默認情況下,它包含:

.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
build/
/captures

我同意這個聲明,但是我修改了這個文件來改變/構建到build /(這將包括/ build和/ app / build)所以我最終沒有得到我的存儲庫中app / build中的所有文件。

另請注意,如果從Eclipse導入項目,則不會復制.gitignore,也不會為您“自動”創建.gitignore。


從Android Studio開始,0.8.4 .gitignore文件在啟動新項目時自動生成。 默認情況下,它包含:

.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build

我合併了Github .gitignore文件

### Github Android.gitignore ### 

# Built application files
*.apk
*.ap_

# Files for the Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/

# 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/

### Github JetBrains.gitignore ### 

# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio

*.iml

## Directory-based project format:
.idea/
# if you remove the above rule, at least ignore the following:

# User-specific stuff:
# .idea/workspace.xml
# .idea/tasks.xml
# .idea/dictionaries

# Sensitive or high-churn files:
# .idea/dataSources.ids
# .idea/dataSources.xml
# .idea/sqlDataSources.xml
# .idea/dynamic.xml
# .idea/uiDesigner.xml

# Gradle:
# .idea/gradle.xml
# .idea/libraries

# Mongo Explorer plugin:
# .idea/mongoSettings.xml

## File-based project format:
*.ipr
*.iws

## Plugin-specific files:

# IntelliJ
/out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties

Please read: JetBrains Support: How to manage projects under Version Control Systems


我支持提交.idea文件夾(不包括workspace.xmltasks.xml )。 但我開始得出結論,應該忽略.iml文件。

這是問題:

例如,在一個名為“foo”的目錄中打開一個項目,你將得到foo.iml並且一切看起來都很好。 問題是,如果我只是在嘗試在Android Studio中打開項目時將目錄重命名為foo2(或將其克隆到另一個目錄名稱),您將獲得三件事:

  • 一個名為foo2.iml的新iml文件
  • 您的Android項目的iml文件將更改為現在指向foo2作為其父項
  • .idea / modules.xml將為foo2.iml添加一行,因此它既有舊的iml文件又有新目錄的文件

當項目存儲在不同的目錄中時,我無法阻止Android Studio執行此iml文件生成。 將它們添加到源代碼控制將導致問題。 因此我想也許我們應該忽略* .iml文件和.idea/modules.xml



我的建議也是不要忽略.idea文件夾。

我已經將一個基於Git的Eclipse項目導入Android Studio,並且運行良好。 後來,我想用Git(就像第一次)將這個項目導入另一台安裝了Android Studio的機器,但是沒有用。 Android Studio確實加載了所有文件,但無法將項目“視為”項目。 我只能打開Git文件。

在第一次導入項目時(從Eclipse到Android Studio),我的舊.gitignore被覆蓋了,新的看起來像這樣:

  • .idea / .NAME
  • .idea / compiler.xml
  • .idea /版權/ profiles_settings.xml
  • .idea / encodings.xml
  • .idea /庫/ libs.xml
  • .idea / misc.xml
  • .idea / modules.xml
  • .idea /範圍/ scope_settings.xml
  • .idea / vcs.xml
  • .idea / workspace.xml

所以,我試圖使用一個空的gitignore,現在它工作了。 另一個Android Studio可以加載文件和Project。 我猜有些文件對於Git和導入來說並不重要(profiles_settings.xml) ,但我很高興它有效。


最好在開發時間之前添加.gitignore列表,以防止由於某個地方的預定義(複製/粘貼)列表而導致版本控制由於某種原因無法工作時出現未知的副作用。 對於我的一個項目,忽略列表僅包括:

.gradle
.idea
libs
obj
build
*.log

為了獲得更好的想法,您只需要以下文件即可

  • 應用
  • 的build.gradle
  • settings.gradle

您可以將其他所有內容放在.gitignore文件中。 您的所有應用更改主要位於這些文件和文件夾中。 您在基本項目中看到的其餘部分是gradle構建文件或Android Studio配置文件。

如果您使用的是Android Studio,則可以使用“導入項目”來成功構建項目。 或者,您可以使用命令行構建,請按照使用Gradle構建Android項目



    ### Github Android.gitignore ### 

# Built application files
*.apk
*.ap_

# Files for the Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/

# 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/

### Github JetBrains.gitignore ### 

# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio

*.iml

## Directory-based project format:
.idea/
# if you remove the above rule, at least ignore the following:

# User-specific stuff:
# .idea/workspace.xml
# .idea/tasks.xml
# .idea/dictionaries

# Sensitive or high-churn files:
# .idea/dataSources.ids
# .idea/dataSources.xml
# .idea/sqlDataSources.xml
# .idea/dynamic.xml
# .idea/uiDesigner.xml

# Gradle:
# .idea/gradle.xml
# .idea/libraries

# Mongo Explorer plugin:
# .idea/mongoSettings.xml

## File-based project format:
*.ipr
*.iws

## Plugin-specific files:

# IntelliJ
/out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties




gitignore