ماذا يجب أن يكون في.gitignore الخاص بي لمشروع Android Studio؟




android-studio (20)

ما الملفات التي يجب أن تكون في .gitignore الخاص بي لمشروع Android Studio؟

لقد رأيت العديد من الأمثلة التي تتضمن كافة .iml ولكن تقول مستندات .iml أنه يجب تضمين .iml في التحكم بالمصادر.


أساسا أي ملف يتم تجديده تلقائيا.

اختبار جيد هو استنساخ الريبو الخاص بك ومعرفة ما إذا كان Android Studio قادرًا على تفسير وتشغيل مشروعك على الفور (توليد ما هو مفقود).
إن لم يكن ، ابحث عن ما هو مفقود ، وتأكد من أنه لم يتم تجاهله ، ولكنه أضاف إلى الريبو.

ومع ذلك ، يمكنك أخذ مثال على ملفات .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/

أعلم أن هذا موضوع قديم وهناك بالتأكيد الكثير من الخيارات ، لكنني أفضل حقاً gibo قبل سيمون ويتاكر. انها سهلة الاستخدام ، عبر منصة (ماك ، * لا شىء ، والنوافذ) ، ويستخدم ريبو github.com/github/gitignore لذلك (أساسا) دائما حتى الآن.

تأكد من تحديث ذاكرة التخزين المؤقت المحلية:

    $ gibo --upgrade
    From https://github.com/github/gitignore
     * branch            master     -> FETCH_HEAD
    Current branch master is up to date.

ابحث عن اللغة / التقنية التي تحتاجها:

    $ gibo --search android
    Android

عرض ملف .gitignore:

    $ gibo Android
    ### Android

    # 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

الآن ، إلحاقه بملف .gitignore للمشروع الخاص بك:

    $ gibo Android >> .gitignore

(تأكد من أنك تستخدم >> لإلحاق ملف .gitignore الخاص بمشروعك ؛ وسيقوم أحد > بالكتابة فوقه - كما فعلت مرات عديدة في حادث!)

أعلم أن هذا لا يجيب على سؤال OP بالضبط ، ولكن باستخدام gibo يجعلك ذلك إلى حد كبير لا يجب عليك التفكير في "السؤال" بعد الآن! .. جميل! ؛)



أنا دمج ملفات Gitub .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


أنا لا أتفق مع كل هذه الإجابات. تعمل التهيئة التالية بشكل رائع لتطبيق مؤسستنا.

أتجاهل:

  • /build
  • /.idea (مع وجود استثناءات محتملة ، راجع التعليقات في إجابة dalewking )
  • *.iml
  • local.properties

أعتقد أن الجميع يتفقون تقريبا على /build .

لقد سئمت من رؤية الرسائل باستمرار حول ملفات library.xml المختلفة التي يقوم Gradle بإنشاءها أو حذفها في /.idea . سيتم تشغيل build.gradle على المطورين المحليين عندما يقومون أولاً بمراجعة المشروع ، فلماذا تحتاج ملفات XML إلى إصدار؟ سيعمل Android Studio أيضًا على إنشاء ما تبقى من /.idea عندما ينشئ مطور مشروعًا باستخدام Check out from Version Control ، فلماذا إذن يلزم إجراء أي Check out from Version Control في هذا المجلد؟

إذا *.iml نسخة *.iml على المستخدم الجديد تسمية المشروع تمامًا كما كان عند الالتزام به. بما أن هذا أيضًا ملف تم إنشاؤه ، فلماذا نسخته في المقام الأول؟

local.properties ملفات local.properties إلى مسار مطلق على نظام الملفات لحزمة SDK ، لذلك لا ينبغي بالتأكيد إصدارها.

تعديل 1 : تمت إضافة .gradle لتجاهل ذاكرة التخزين المؤقت التي لا ينبغي إصدارها (شكرًا فاسيلي ماكاروف ).

تعديل 2 : تمت إضافة .DS_Store الآن لأنني أستخدم Mac. هذا المجلد خاص بجهاز Mac ولا يجب إصداره.

ملاحظة إضافية : ربما تريد أيضًا إضافة دليل لوضع مفاتيح التوقيع الخاصة بك عند إنشاء نسخة إصدار.

للحصول على راحة النسخ / الملصق :

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


بدءًا من Android Studio 0.8.4 ، يتم إنشاء ملف gitignore تلقائيًا عند بدء مشروع جديد. بشكل افتراضي يحتوي على:

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

أوافق على هذا البيان ، ومع ذلك أقوم بتعديل هذا الملف لتغيير / بناء لبناء / (وهذا يشمل / build و / app / build) لذلك لا ينتهي بي الأمر مع جميع الملفات الموجودة في التطبيق / البنية في مستودع التخزين الخاص بي.

لاحظ أيضًا أنه إذا قمت باستيراد مشروع من Eclipse ، فلن يتم نسخ .gitignore ، أو "automagically" تم إنشاؤه من أجلك.


بناء على بلدي الروبوت العادي .gitignore ، وبعد قراءة الوثائق على موقع Intellij IDEA وقراءة المشاركات على ، لقد قمت بإنشاء الملف التالي:

# built application files
*.apk
*.ap_

# files for the dex VM
*.dex

# Java class files
*.class

# built native files (uncomment if you build your own)
# *.o
# *.so

# generated files
bin/
gen/

# Ignore gradle files
.gradle/
build/

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

# Proguard folder generated by Eclipse
proguard/

# Eclipse Metadata
.metadata/

# Mac OS X clutter
*.DS_Store

# Windows clutter
Thumbs.db

# Intellij IDEA (see https://intellij-support.jetbrains.com/entries/23393067)
.idea/workspace.xml
.idea/tasks.xml
.idea/datasources.xml
.idea/dataSources.ids

لاحظ أيضًا أنه كما هو موضح ، فإن قسم الملفات المدمجة المدمج مفيد في المقام الأول عندما تقوم ببناء كودك الأصلي الخاص بك مع Android NDK. على الجانب الآخر ، إذا كنت تستخدم مكتبة طرف ثالث تتضمن هذه الملفات ، فقد ترغب في إزالة هذه السطور (* .o و * .so) من .gitignore الخاص بك.


في حالة Android Studio ، فإن الملفات الوحيدة التي يجب حفظها في التحكم في الإصدار هي الملفات المطلوبة لإنشاء التطبيق من سطر الأوامر باستخدام gradle. بحيث يمكنك تجاهل:

  • * .iml
  • .فكرة
  • بناء

ومع ذلك ، إذا قمت بحفظ أي إعدادات IDE ، مثل إعدادات نمط التعليمات البرمجية المخصصة ، يتم حفظها في مجلد .idea. إذا كنت تريد هذه التغييرات في التحكم في الإصدار ، فستحفظ ملفات IDEA أيضًا (* .iml و .idea).


لا توجد حاجة لإضافة عنصر التحكم المصدر إلى أي مما يلي:

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

لذلك يمكنك تكوين hgignore أو gitignore وفقا لذلك.

في المرة الأولى التي يتمكن مطور البرامج من استبعاد عنصر التحكم المصدر ، يمكن أن:

  1. افتح Android Studio
  2. مشروع الاستيراد
  3. استعرض لـ build.gradle داخل مستودع المستنسخ وافتحه

هذا كل شئ

ملاحظة: سيحصل Android Studio بعد ذلك ، من خلال maven ، على المكون الإضافي الخاص ببرنامج التجميع على افتراض أن البنية build.gradle تشبه هذا:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.12.2'
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}

سيعمل استوديو Android على إنشاء محتوى المجلد .idea (بما في ذلك workspace.xml ، والذي لا ينبغي أن يكون في عنصر تحكم مصدر لأنه يتم إنشاؤه ) ومجلد.

هذه الطريقة صديقة للبيئة بطريقة Eclipse بالطريقة التي لا يعرف بها التحكم بالمصدر أي شيء عن Android Studio. يحتاج Android Studio فقط إلى build.gradle لاستيراد مشروع وتوليد الباقي.


لمشاريع 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

من الأفضل إضافة قائمة .gitignore خلال وقت التطوير لمنع التأثير الجانبي غير المعروف عندما لا يعمل التحكم في الإصدار لسبب ما بسبب قائمة (نسخ / لصق) محددة مسبقًا من مكان ما. بالنسبة لأحد مشروعاتي ، لا تشمل قائمة التجاهل إلا ما يلي:

.gradle
.idea
libs
obj
build
*.log

.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

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

تحديث 7/2015:

هنا هو المصدر النهائي من JetBrains

تنسيق مشروع يستند إلى الدليل (دليل .idea)

يتم استخدام هذا التنسيق بواسطة كافة إصدارات IDE الحديثة بشكل افتراضي. إليك ما تحتاج إلى مشاركته:

  • جميع الملفات تحت الدليل .idea في جذر المشروع باستثناء ملفات workspace.xml و tasks.xml التي تقوم بتخزين إعدادات محددة للمستخدم
  • كافة ملفات الوحدة النمطية .iml التي يمكن وضعها في دلائل الوحدة النمطية المختلفة (ينطبق على IntelliJ IDEA)

كن حذرًا بشأن مشاركة ما يلي:

  • عناصر Android التي تنتج بنية موقعة (تحتوي على كلمات مرور تخزين المفاتيح)
  • في IDEA 13 dataSources.ids ، يمكن أن يحتوي datasources.xml على كلمات مرور قاعدة البيانات. IDEA 14 يحل هذه المشكلة .

قد تفكر في عدم مشاركة ما يلي:

  • ملف gradle.xml ، راجع هذه المناقشة
  • مجلد قواميس المستخدم (لتجنب التعارضات إذا كان للمطوِّر الآخر نفس الاسم)
  • ملفات XML تحت .idea/libraries في حالة تم إنشاؤها من مشروع Gradle

تنسيق مشروع قديم ( .ipr / .iml / .iws )

  • مشاركة ملف .ipr للمشروع وجميع ملفات الوحدة النمطية .iml ، لا تشارك ملف. .iws لأنه يخزن إعدادات محددة للمستخدم

على الرغم من أن هذه الإرشادات مخصصة لـ IntelliJ IDEA ، إلا أنها تحمل 100٪ حقيقيًا في Android Studio.

في ما يلي مقتطف .gitignore الذي يتضمن جميع القواعد الواردة أعلاه:

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

تم اختباره باستخدام Android Studio 3.0

قد تحتاج إلى تثبيت .ignore plugin.

يمكنك إنشاء ملف .gitignore تلقائيًا لنظام Android. انقر بزر الماوس الأيمن على مجلد واتبع

ثم حدد Android من اللوحة اليمنى وانقر على " إنشاء"

سيعمل 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


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