Bir Android Studio projesi için .gitignore'umda ne olmalı?


Yanıtlar:


1330

Android Studio 3.0'a güncellendi Lütfen yorumlarda eksik öğeleri paylaşın.

Geç bir cevap ama burada ve burada cevapların hiçbiri bizim için doğru paraydı ...

İşte gitignore dosyamız:

#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

# Windows thumbnail db
Thumbs.db

# OSX files
.DS_Store

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

#NDK
obj/
.externalNativeBuild

Android Studio 2.2 ve 3.0'a kadar, bu gitignore dosyasıyla yeni projeler oluşturulur:

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

Kullanımdan kaldırıldı - eski proje biçimi için bu bölümü gitignore dosyanıza ekleyin:


/*/out
/*/*/build
/*/*/production
*.iws
*.ipr
*~
*.swp

Bu dosya projenin modül klasöründe değil, projenin kök klasöründe bulunmalıdır.

Notları Düzenle:

  1. 0.3+ sürümünden beri * .iml ve build.gradle dosyalarını kaydedebilir ve itebilirsiniz . Projeniz Gradle'a dayanıyorsa: yeni aç / içe aktar iletişim kutusunda "use auto import"onay kutusunu işaretlemeli ve "use default gradle wrapper (recommended)"radyo düğmesini işaretlemelisiniz . Tüm yollar artık @George'un önerdiği şekilde göreceli.

  2. @ 128KB ekli kaynağa ve @Skela önerilerine göre güncellenmiş cevap


8
Neden projeyi içe aktarmak ve elle kütüphaneler ve modül bağımlılıkları eklemek zorundayız? Depodaki bu şeyleri korumanın bir yolu var mı ve depoyu klonladığımızda bir proje açık mı?
Justin

13
Bunu yapmanın uygun yolu * .iml ve * .ipr dosyalarını kontrol etmek ve sadece IDE'de açmaktır. Neden ekibinizdeki diğer kişileri bu dosyaları yeniden oluşturmaya zorlasın ve neden olası yanlış ayarları (sdk sürümü gibi) kullanmalarına izin veresiniz?
Sky Kelsey

26
@liorry, katılmıyorum. Bu, diğer insanların göreceği ilk cevaptır ve kitlesel olarak oylanır. Bu özel .gitignore kullanarak git gelen taze bir klon sonra bir proje almak ve çalıştırmak için yapmanız gereken her şey nedeniyle şiddetle bu çoğu insanın ihtiyaç duyduğu şey olmadığını hissediyorum. Her ne kadar yukarı oyların sayısı aksini söylese de, yine de aynı fikirde değilim. En azından, belki de projeyi tekrar kurmanız gerekeceğini belirten bazı bilgiler ve kutudan çıkmaz.
Skela

10
@liorry, kaba ya da eş olmak istemiyorum, lütfen kişisel olarak almayın. Sorun şu ki, bu şeylerin herhangi bir pratik kullanım için minimum miktarda kurulumla çalışması gerekir. Projeyi İçe Aktarmanız ve modül bağımlılıklarını manuel olarak eklemeniz gerektiğinde, hemen bir giriftlik alanına girmiştir. Bir projeye aşina olduğunuzda ve bunları içten dışa bildiğinizde, yaklaşımınızla ilgili bir sorun yoktur. Ancak projeyi ilk kez klonlayan bir geliştirici için, bu pratik değil. Gerçekten sadece yaklaşımınızın her şey norm haline gelmediğinden emin olmaya çalışıyorum.
Skela

14
Sen gerektiğini değil sürüm .imldosyaları onlar çıkış yaparken diğer kullanıcıların farklı proje adı ise gereksiz can sıkma başa wan't sürece.
theblang

151

Normal Android .gitignore'umu temel alarak ve Intellij IDEA web sitesindeki belgeleri okuduktan ve StackOverflow'daki yazıları okuduktan sonra aşağıdaki dosyayı oluşturdum:

# 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

Ayrıca belirtildiği gibi, yerleşik yerel dosyalar bölümünün Android NDK ile kendi yerel kodunuzu oluştururken öncelikle yararlı olduğunu unutmayın. Öte yandan, bu dosyaları içeren bir üçüncü taraf kitaplığı kullanıyorsanız, bu satırları (* .o ve * .so) .gitignore'unuzdan kaldırmak isteyebilirsiniz.


10
Neredeyse doğru. NDK kütüphanelerinde bağımlılıkları olan projelerle çalışamayacağınız için *. Ancak tüm hesaplar için çok iyi bir başlangıç ​​noktası!
Skela

@Skela iyi bir nokta. Bunları kendi yerel dosyalarımı oluşturduğum andan itibaren orada buldum - ancak önceden oluşturulmuş dosyaların basit bir kopyasını ve yapıştırmasını gerektiren projeler üzerinde de çalıştım. Yukarıdaki cevaba bununla ilgili bir not ekledim.
Phil

@Phil XML dosyaları hakkında fikriniz var .idea/librariesmı? Sizce paylaşılmalı mı yoksa hariç tutulmalı mı?
Alex Lockwood

1
@AlexLockwood Proje başka bir projeye veya modüle bağımlı değilse, bu dosyaların dahil edilmesi gerektiğini düşünüyorum. Bununla birlikte, proje kitaplıkları içeren bir modüle bağımlıysa, bu dosya proje düzeyinde yok sayılmalıdır, ancak modül tarafından yok sayılmalıdır.
Phil

@Phil çok havalı ve şimdiye kadar kullandım ama bir dex dosyası çatlaklardan kayıyor: /moduledirectory/build/intermediates/dex-cache/cache.xml - ** / build eklemek mantıklı olmaz mı? modüllerdeki derleme klasörleri de hariç tutulsun mu?
Oliver Hausler

82

Güncelleme 7/2015:

İşte JetBrains'den kesin kaynak


Dizin tabanlı proje biçimi (.idea dizini)

Bu biçim varsayılan olarak en son IDE sürümleri tarafından kullanılır. İşte paylaşmanız gerekenler:

  • Altındaki tüm dosyalar .ideaproje kök dizininde hariçworkspace.xml ve tasks.xmldosyaların hangi mağaza kullanıcı tanımlı ayar
  • .imlFarklı modül dizinlerinde bulunabilen tüm modül dosyaları (IntelliJ IDEA için geçerlidir)

Aşağıdakileri paylaşırken dikkatli olun :

  • İmzalı bir yapı oluşturan Android eserleri (anahtar deposu şifreleri içerecek)
  • IDEA 13 ve önceki sürümlerinde dataSources.ids, datasources.xmlveritabanı şifreleri içerebilir. IDEA 14 bu sorunu çözmektedir .

Aşağıdakileri paylaşmamayı düşünebilirsiniz:

  • gradle.xml dosyası, bu tartışmaya bakın
  • kullanıcı sözlükleri klasörü (diğer geliştiricilerin aynı ada sahip olması durumunda çakışmaları önlemek için)
  • Gradle projesinden üretilmesi.idea/libraries durumunda XML dosyaları

Eski proje formatı ( .ipr/ .iml/ .iwsdosya)

  • Proje .iprdosyasını ve tüm .imlmodül dosyalarını paylaşın , .iwsdosyayı kullanıcıya özel ayarları sakladığından paylaşmayın

Bu talimatlar IntelliJ IDEA için olsa da, Android Studio için% 100 gerçek tutar.


.gitignoreYukarıdaki kuralların tümünü içeren bir pasaj:

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

Hangi SDK'ların desteklendiği AndroidManifest.xml dosyasında (ve ayrıca Gradle tarafından) tanımlanır. Bu ayar tarafından izin verilen tüm SDK'lar geliştirme için uygun olmalıdır. Kod stilleri ile ilgili olarak: bu, her projede ayrı ayrı muhafaza edilmesi gereken bir şey değildir ve ayrıca IDE'den bağımsız olarak açıklığa kavuşturulması gerekir. Telif hakkı başlıkları: umarım bunlar kod tabanınızdadır ve herhangi bir IDE proje dosyasında değildir. Aksi takdirde komut
satırında

@Risadinha 1) SDK'lar da IDE düzeyinde tanımlanmaktadır. Manifest'te bunlara başvurulur, ancak proje dosyası gerçek SDK tanımlarını içerir. 2) Kod stili proje düzeyinde EN AZ olarak muhafaza edilmelidir. İdeal olarak, herkes standart Java yazardı, ama iyi. 3) Telif hakkı başlıkları projede saklanır. Yeni dosya oluşturmak için kullanılırlar ve ad, şirket adı, proje, tarih vb. İçin makrolar içerebilirler. Özetle, proje dosyaları, ekiple paylaşılması ve kontrol edilmesi gereken proje hakkında önemli meta bilgiler içerir.
Sky Kelsey

3
Bir bakıcı değişiklikleri kendi repolarına çekti . Muhtemelen yakında efendiye çekilecek.
FalconC

5
JetBrains, DOC- 1186'yı kullanımdan kaldırmış ve güncelleştirilmiş önerilerini yeni bir gönderiye yerleştirmiştir: DO INCLUDE: Proje kökündeki .idea dizini altındaki workspace.xml ve task.xml ve tüm .iml dosyaları dışındaki tüm dosyalar. İmzalı bir yapı (anahtar deposu parolaları içerecek), dataSources.ids ve datasources.xml (parolalar içerebilir) üreten Android yapılarını paylaşırken DİKKATLİ OLUN. CONSIDER EXCLUDING: gradle.xml, kullanıcı sözlükleri klasörü ve .idea / library altındaki XML dosyaları (Gradle projesinden üretilmesi durumunda).
JSmitty

2
Bu hoş bir teori ama bu bizim için işe yaramıyor. Tutarlı bir şekilde .iml dosyaları ve bunun gibi girişler elde ediyoruz: Sürekli olarak artmakta olan <orderEntry type="jdk" jdkName="1.6 (38)" jdkType="JavaSDK" />38 numaraya dikkat edin. (misc.xml dosyasında da bu sorun vardır).
Sam

41

Tüm bu cevaplara katılmıyorum. Aşağıdaki yapılandırma, kuruluşumuzun uygulaması için harika çalışıyor.

Red ediyorum:

Sanırım neredeyse herkes aynı fikirde /build.

library.xmlGradle'ın oluşturduğu veya sildiği çeşitli dosyalar hakkında sürekli mesajlar almaktan bıktım /.idea. build.gradleBu XML dosyaları sürüm olması gerekiyor neden bu kadar bunlar ilk projesini çıkış yaparken geliştiriciler yerel çalışacak? Android Studio, /.ideabir geliştirici kullanarak bir proje oluşturduğunda geri kalanını da üretecektir Check out from Version Control, bu yüzden bu klasördeki herhangi bir şeyin neden sürümlendirilmesi gerekiyor?

Eğer *.imlsürümlendirilmişse, yeni bir kullanıcı projeyi taahhüt edildiğinde olduğu gibi adlandırmalıdır. Bu aynı zamanda oluşturulan bir dosya olduğundan, neden ilk etapta sürüm?

local.propertiesSDK için dosya sisteminde mutlak bir yol dosyalar noktaları, bu nedenle kesinlikle sürüm edilmemelidir.

Düzenleme 1 : .gradleSürümlendirilmemesi gereken kepçe önbellekleme öğelerini yok saymak için eklendi (teşekkürler Vasily Makarov ).

Edit 2 : .DS_StoreArtık Mac kullandığım eklendi . Bu klasör, Mac özeldir ve gerektiği değil sürüm olması.

Ek not : Muhtemelen bir yayın sürümü oluştururken imza anahtarlarınızı koymak için bir dizin eklemek istersiniz.

Kopyalama / yapıştırma kolaylığı için :

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

4
Cevabınıza katılıyorum. Ayrıca * .iml veya .idea dosyalarının da sürümlendirilmemesi gerektiğine inanıyorum: stackoverflow.com/a/26290130/2948212
diegosasw

7
Benim oyum gitignore için olduğu gibi benimki gibi. Birkaç öneri: Modül oluşturma dizinlerini eşleştirmek build/yerine kullanın . Gradle önbellek dizinini eşleştirmek için kullanın . /buildapp/build.gradle
Vasily Makarov

Ayrıca neden varsayılan gitignore list / build yerine build / ı sormak / app kullanırsanız benim app / build tüm dosyaları ile
sonuç

@ guyland123 Uygulama dizinimde de bulunan başka bir .gitignoredosya olduğunu fark ettim /build. Bu otomatik mi oluşturuldu, hatırlayamıyorum? Peki build/alt klasörler için geçerli olacak mı?
theblang

@mattblang yes .gitignore, yeni bir proje oluşturduğunuzda otomatik olarak oluşturulur. Ancak Eclipse adlı projeden içe aktardığınızda oluşturulmaz. build / .gitignore dosyasının konumunun altındaki "build" adlı tüm dizinlerle eşleşir. Örneğin. uygulama / derleme yoksayılır.
guyland123


35

Android Studio söz konusu olduğunda, sürüm denetiminde kaydedilmesi gereken tek dosyalar, uygulamayı sınıftan kullanarak komut satırından oluşturmak için gereken dosyalardır. Böylece görmezden gelebilirsiniz:

  • * .iml
  • .idea
  • inşa etmek

Ancak, özel kod stili ayarları gibi herhangi bir IDE ayarını kaydederseniz bunlar .idea klasörüne kaydedilir. Sürüm kontrolündeki bu değişiklikleri istiyorsanız, IDEA dosyalarını da kaydedersiniz (* .iml ve .idea).


3
Bunu açıkladığınız için teşekkürler. Projenize .idea ekleyecekseniz okuduğum şeyden * /. İdea / workspace.xml ve * /. İdea / görevler.xml
respectTheCode'u

15
şimdilik .idea klasörünü yok saymayın. Gradle eklentisinin henüz herhangi bir 'gradle fikri' görevi yok ve Android Studio'daki içe aktarma projesi artık mükemmel olmaktan çok uzak.
robotoaster

2
Ayrıca bir takımda çalışıyorsanız, harddodlu sdk yolunu içerdiğinden local.properties'i görmezden gelmeyi düşünün.
Calin

@robotoaster, yine de .idea klasörünü göz ardı etmemenizi tavsiye eder misiniz?
loeschg

@Ioeschg artık gerekli değil. temiz git repo ödeme yaparsanız Yeni Proje İçe Aktar kullanın ve yapı dosyaları mevcut olduğu sürece iyi çalışmalıdır.
robotoaster

20

Android Studio 3.4

Android Studio'yu kullanarak bir Gradle projesi oluşturursanız, .gitignoredosya aşağıdakileri içerir:

.gitignore

*.iml
.gradle
/local.properties
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store
/build
/captures
.externalNativeBuild

Kullanıcıya özgü yapılandırmalar, oluşturma işlemi için önemli bir şey içerdiğinden, ".idea" dizininin tamamını görmezden gelmenizi öneririm.

Gradle proje klasörü

Depo klonlamasından sonra (Gradle) proje klasörünüzde olması gereken tek şey bu yapıdır (en azından şimdiye kadar karşılaştığım kullanım durumları için):

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

Kepçe sarmalayıcı komut dosyalarını kontrol etmeniz önerilir ( buraya bakın ).

Wrapper dosyalarını diğer geliştiriciler ve yürütme ortamları için kullanılabilir hale getirmek için bunları sürüm denetiminde kontrol etmeniz gerekir.


1
Neden gradlew ve gradle.bat gibi ikili dosyaları tutmalısınız?
17'de Bilthon

2
@Bilthon Onlar ikili değiller. Bunlar Windows (gradle.bat) ve Linux (gradlew) için başlangıç ​​başlatma komut dosyalarıdır.
Willi Mentzel

Ohh .. Doğru olduğunu görüyorum, ama yine de otomatik olarak üretilmiyorlar mı?
17'de Bilthon

2
@Bilthon Gerçekten de öyle! Varsayılan seçeneklerle üretilirler. Bir şeyi değiştirirseniz, taze kontrol ederken düzgün bir şekilde oluşturmak için havuzunuza dahil edilmelidir. Çok küçükler, onları tutmak her zaman zarar vermez.
Willi Mentzel

2
Ayrıca, Gradle sarıcı komut dosyalarını kaynak denetimine açıkça öneren bu resmi kaynağı da kontrol edin: docs.gradle.org/current/userguide/…
friederbluemle

19

Benim tavsiyem de .idea klasörünü görmezden gelmemektir.

Git tabanlı Eclipse projesini Android Studio'ya aktardım ve bu iyi gitti. Daha sonra, Git ile bu projeyi (ilk kez olduğu gibi) Android Studio'lu başka bir makineye aktarmak istedim, ancak bu işe yaramadı. Android Studio tüm dosyaları yükledi ancak projeyi proje olarak "göremedi". Yalnızca Git dosyalarını açabildim.

Projeyi ilk kez (Eclipse'den Android Studio'ya) içe aktarırken eski .gitignore'umun üzerine yazıldı ve yenisi şöyle görünüyordu:

  • .idea / .name
  • .idea / compiler.xml
  • .idea / telif hakkı / profiles_settings.xml
  • .idea / encodings.xml
  • .idea / kütüphaneleri / libs.xml
  • .idea / misc.xml
  • .idea / modules.xml
  • .idea / kapsamı / scope_settings.xml
  • .idea / vcs.xml
  • .idea / workspace.xml

Bu yüzden, boş bir gitignore kullanmaya çalıştım ve şimdi işe yaradı. Diğer Android Studio dosyaları ve Projeyi yükleyebilir. Bazı dosyaların (profiles_settings.xml)Git ve içe aktarma için önemli olmadığını düşünüyorum ama işe yaradığı için mutluyum.


Gönderen github.com/joeblau/gitignore.io/issues/… : erge Baranov (IntelliJ) 26 Eyl 14:23 CEST Projeye bağlı olacaktır. Proje Maven veya Gradle'dan içe aktarılırsa, .iml dosyaları otomatik olarak oluşturulur ve paylaşılamazlar, aksi takdirde bu dosyalar proje için gereklidir ve diğer kullanıcıların ödeme yapıldıktan sonra projeyi açabilmeleri için paylaşılmalıdır. .iml dosyaları modül yapılandırması (kökler, kaynak klasörler, bağımlılıklar vb.) hakkındaki tüm bilgileri içerir.
Adrian Romanelli

9

Bu üretmek için en iyi yoldur .gitignorearacılığıyla burada


1
Bu işlemi Android Studio için yapamıyorum. Sadece "android" i seçersem bir Eclipse uygulaması gibi görünüyor. Yanlış mı yapıyorum?
zipzit

Eclipse için tek söz bir satırdadır: "Eclipse tarafından oluşturulan korumalı klasör". Gerisi AS için iyi görünüyor
Jose_GD

@zipzit, muhtemelen haklısın. Görünüşe göre site .idea / içermediği için Android Studio için değil .gitignore üretir.
CoolMind

1
Android Studio Seçeneği de var
Daniyal Javaid

8

Kaynak kontrolüne aşağıdakilerden herhangi birini eklemeniz GEREKMEZ:

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

Böylece hgignore veya gitignore'u buna göre yapılandırabilirsiniz.

Bir geliştirici kaynak denetimini ilk kez klonladığında:

  1. Android Studio'yu aç
  2. İthalat Projesi
  3. Klonlanmış depodaki build.gradle dosyasına göz atın ve açın

Bu kadar

PS: Android Studio, maven aracılığıyla, build.gradle'ınızın buna benzediğini varsayarak gradle eklentisini alır:

// 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 studio, .idea klasörü (oluşturulduğu için kaynak denetiminde olmaması gereken workspace.xml dahil ) ve .gradle klasörünün içeriğini oluşturur .

Bu yaklaşım, kaynak kontrolünün Android Studio hakkında gerçekten bir şey bilmemesi açısından Eclipse dostudur. Android Studio, bir projeyi içe aktarmak ve gerisini oluşturmak için build.gradle'a ihtiyaç duyar.


5
Çocuklar, olumsuz oy kullananların bunun için geçerli bir neden sunması gerekir. Cevabımızla yanılmış olup olmadığımızı bize / herkese bildirmek faydalı olabilir.
diegosasw

1
There is NO NEEDevet bazı durumlar vardır: örneğin ekip üyeleri arasında paylaşılması gereken telif hakkı şablonları.
Henrique de Sousa

8

.İdea klasörünün işlenmesini destekliyorum ( workspace.xmlve hariç tasks.xml). Ancak .iml dosyalarının göz ardı edilmesi gerektiği sonucuna varmaya başladım.

İşte sorun:

Örneğin "foo" adlı bir dizinde bir proje açın ve foo.iml alacaksınız ve hepsi iyi ve iyi görünüyor. Sorun, Android Studio'da projeyi açmaya çalıştığınızda dizini foo2 olarak yeniden adlandırırsam (veya başka bir dizin adına klonlarsanız) üç şey alırsınız:

  • Foo2.iml adlı yeni bir iml dosyası
  • Android projenizin iml dosyası şimdi üst öğesi olarak foo2'yi gösterecek şekilde değiştirilecek
  • .idea / modules.xml dosyası foo2.iml için bir satır ekleyecektir, böylece hem eski iml dosyasına hem de yeni dizin için bir satıra sahip olacaktır.

Proje farklı bir dizinde depolandığında Android Studio'nun bu iml dosya oluşturmasını önlemenin bir yolunu bulamıyorum. Bunları kaynak denetimine eklemek sorunlara yol açacaktır. Bu yüzden bence * .iml dosyalarını görmezden gelmeliyiz ve.idea/modules.xml


Hem görmezden /.ideave .imldosyaları. .ideaKlasörün neden işlenmesi gerektiğini duymak istiyorum .
theblang

Mevcut projeme baktığımda, ekibi zorlamak için .idea /: kod stili ayarlarından ve gerçek kelimeler olmayan projeye özgü kelimeler içeren bir kullanıcı sözlüğünden kontrol ettiğim sadece 2 şey var. .İdea'da birçok dosya ile başladım, ancak bir dosya değişmemiş olarak gösterilmeye başladığında .gitignore'a eklenecekti. Demek istediğim o kadar da değil .idea .iml dosyaları ve modules.xml olması gerektiği gibi kontrol edilmelidir.

Üzgünüm, ben onunla bitmeden SO benim yorum aldı (yorum satır sonları kabul etmiyorum hatırlamak gerekir). Diğer düşüncelerimle düzenlendi.

Teşekkürler! Evet, bahsettiğiniz dosyalar mantıklı. Kabul ediyorum, en büyük baş ağrısı library.xmlmesajları tetikleyen dosyalardı. Ayrıca, neden * .iml dosyalarının dahil edilmesi gerektiğini söylediğini görmeye devam ettiğimi anlamıyorum, bu yüzden harika bir nokta.
theblang

8

Android Studio 3.0 ile test edildi

.İgnore eklentisini kurmanız gerekebilir .

Android için .gitignore dosyasını otomatik olarak oluşturabilirsiniz. Klasöre sağ tıklayın ve izleyin

.Gitignore dosyası ekle

Ardından sol panelden Android'i seçin ve Oluştur'u tıklayın

.Gitignore dosyası oluştur

Android Studio, yoksayılması gereken tüm dosyaları içeren .gitignore dosyası oluşturur.

Alındığı http://menukanows.com/how-to-add-gitignore-file-in-android-project/


7

Proje biçiminizin nasıl korunduğuna bağlıdır:

İki seçeneğiniz var:

  1. Dizin tabanlı biçim ( .ideaProjeye özgü dosyaları içeren bir klasörünüz olacaktır )
  2. Dosya tabanlı biçim (yapılandırma dosyaları .iwsve .ipr)

Ref: http://www.jetbrains.com/idea/webhelp/project.html

Sürüm kontrolüne bağlı dosyalar yukarıdakilere bağlıdır:

  1. Sürüm denetimine .idea klasörünü dahil et, hariç tut workspace.xml ve tasks.xml
  2. Sürüm kontrol .iprdosyası ve tüm.iml modül dosyaları, .iwskullanıcıya özgü ayarları sakladığı için dosyayı hariç tutun .

Referans: https://intellij-support.jetbrains.com/entries/23393067


1
tüm projelerim hem .idea klasörlerine hem de .iws dosyalarına sahip görünüyor
respectTheCode

1
Şahsen JetBrains'in tavsiyelerini takip etmeyi denedim ama benim için işe yaramadı. Ben ve başka bir geliştirici Android Studio kullanıyoruz ve git .idea ve .iml dosya vardı. Yakında birleştirme aracı .idea yolu altındaki dosyaları birleştirmek için başarısız olduğunda birleştirme taahhütleri ve her türlü sorun olsun öğrendim. Sonuç olarak gitignore tüm imls ve .idea ekledim. Sonuçta Studio, Gradle projesini içe aktarırken proje yapısı oluşturma konusunda çok iyi bir iş çıkarıyor. Şimdi sadece gradle dosyalarımda olanlara çok dikkat ediyorum.
zmicer

5

Temelde otomatik olarak yeniden oluşturulan herhangi bir dosya.

İyi bir test, repo'nizi klonlamak ve Android Studio'nun projenizi hemen yorumlayıp yorumlayamadığını (eksik olanı oluşturarak) görmek.
Değilse, eksik olanı bulun ve olmadığından emin olun sayıldığından , ancak repoya eklendiğinden .

Bununla birlikte .gitignore, Android dosyası gibi mevcut dosyalara örnek alabilirsiniz .

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

11
Bu yanlış. * .İml dosyalarınızı ve büyük olasılıkla .idea ve * .ipr dosyalarınızı da kontrol etmelisiniz. "Otomatik olarak oluşturulan herhangi bir şey" kısmı özellikle yanlıştır. Sonuçta çoğu Android projesi otomatik olarak oluşturulur.
Sky Kelsey

6
* .İml, * .idea ve * .ipr Android-Studio / IntelliJ'e özeldir. Onlar edilir değil projeyi oluşturmak için gerekli. IDE'ye özgü oldukları ve zincir oluşturmaya özel olmadıkları için, muhtemelen check-in yapılmamalıdır. Herkes herhangi bir IDE'yi kullanabilir, örneğin Eclipse dosyalarını değil, IntelliJ proje dosyalarını kontrol etmek için bir neden yoktur.
Marc Plano-Lesay

2
Aynı projenin birden fazla çatalında veya herkesin aynı IDE'yi kullandığı bir ekiple çalışmak veya IDE'niz için kullandığınız karmaşık ayarların sürüm kontrolüne sahip olmak istiyorsanız, evet, dosyaları kontrol etmelisiniz. Proje dosyaları IntelliJ için kodunuzu bir editörde açmak için kullanılan basit tüylerden çok daha fazlasıdır.
Sky Kelsey

2
iml dosyalarım neden ben ve iş arkadaşım arasında değiştiğini gösteriyor? özellikle external.root.project.path <module /> etiketi altında değişmeye devam eder
Sam

Windows 8.1 ve aynı projeye sahip OS X Mavericks'te Android Studio 0.8.12 kullanarak, projeyi açtığımda aşağıdaki iki dosyanın Git tarafından değiştirildiğini ve değiştirildiğini fark ettim: <proje adı> .iml ve .idea \ misc.xml. Özellikle: <excludeFolder url = "dosya: // $ MODULE_DIR $ / build / tmp" /> <proje adı> .iml dosyasına eklenir veya bu projeden kaldırılır ve .idea \ misc.xml, işletim sistemleri.
jkwuc89

4

.İdea klasörünü eklemek için .iml dosyaları ve Intellij sez ekleyerek koşerim.

Bunu eklemenin ne kadar mantıklı olduğunu görmüyorum. Android Studio projesinin bilmesi gereken kütüphaneleri listeleyen XML dosyalarının bir listesi vardır. Bunların, IDE proje dosyasından değil, build.gradle tanımlı bağımlılıklardan gelmesi beklenir.

Ayrıca bu dosyalardan birinin içeriği şöyle görünür:

<component name="libraryTable">
    <CLASSES>
       <root url="jar://$USER_HOME$/.gradle/caches/artifacts-26/filestore/com.example/example/etc...jar!"/>

Bunu yapmak mantıklı değil. Kullanıcı sınıf için farklı bir giriş dizini belirttiyse veya farklı bir sınıf sürümü kullanıyorsa, aşağıdaki yol .gradle/caches/artifacts-xxxonlar için farklı olur (yani artifacts-sonuna eklenen sayı kullandığınız sınıf sürümü sürümüyle ilgilidir. ) Bu yollar evrensel değildir, ama tavsiye tüm bunları kontrol etmektir?


4

.gitignoreYeni proje başlarken Android Studio 0.8.4'ten itibaren dosya otomatik olarak oluşturulur. Varsayılan olarak şunları içerir:

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

3

Bunun eski bir konu olduğunu biliyorum ve kesinlikle çok fazla seçenek var, ama gerçekten giboSimon Whitaker tarafından tercih ediyorum . Kullanımı çok basit, çapraz platform (mac, * nix ve windows) ve github repo'yu kullanır, gitignoreböylece (temelde) her zaman günceldir.

Yerel önbelleğinizin güncel olduğundan emin olun:

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

İhtiyacınız olan dili / teknolojiyi arayın:

    $ gibo --search android
    Android

.Gitignore dosyasını görüntüleyin:

    $ 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

Şimdi projenizin .gitignore dosyasına ekleyin:

    $ gibo Android >> .gitignore

( >>Projenizin .gitignore dosyasına eklemek için kullandığınızdan emin olun ; bir> üzerine yazacaktır - kazayla defalarca yaptığım gibi!)

Bunun OP'nin kesin sorusunu yanıtlamadığını biliyorum, ama gibo kullanmak artık bunu 'soru' hakkında düşünmenize gerek yok! .. bu iyi! ;)


3

Daha iyi bir fikir edinmek için tek ihtiyacınız olan dosyalar

  • Uygulamanın
  • build.gradle
  • settings.gradle

Temel Android proje yapısı

Diğer her şeyi .gitignore dosyasına koyabilirsiniz. Tüm uygulama değişiklikleriniz çoğunlukla bu dosya ve klasörlerde bulunur. Temel bir projede gördüğünüz geri kalanı, gradle derleme dosyaları veya Android Studio yapılandırma dosyalarıdır.

Android Studio kullanıyorsanız, projeyi başarıyla oluşturmak için "Projeyi içe aktar" seçeneğini kullanabilirsiniz. Alternatif olarak komut satırını kullanarak oluşturabilir, Gradle ile Android Projeleri Oluşturma'yı takip edebilirsiniz .


3

Sürüm Kontrolü bir yerden önceden tanımlanmış (kopyala / yapıştır) listeden dolayı herhangi bir nedenle çalışmadığında bilinmeyen yan etkiyi önlemek için .gitignore listesini geliştirme süresi boyunca eklemek en iyisidir. Projemden biri için yoksay listesi yalnızca aşağıdakilerden biridir:

.gradle
.idea
libs
obj
build
*.log

3

Github, çeşitli projeler için yararlı gitignore öğelerini korur. İşte android projeler için yararlı gitignore öğelerinin listesi.

# 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

Github'da Android Gitignore


3
Bu bağlantı soruyu cevaplayabilse de, cevabın temel kısımlarını buraya eklemek ve bağlantıyı referans olarak sağlamak daha iyidir. Bağlantı verilen sayfa değişirse, yalnızca bağlantı yanıtları geçersiz olabilir. - Yorumdan
imtheman

@imtheman akla yatkın .. Cevabı güncelledim ve bağlantıyı referans olarak koydum
Sudip Bhandari

2

Github .gitignore dosyalarını birleştiriyorum

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

Lütfen okuyun: JetBrains Destek: Sürüm Kontrol Sistemleri altında projeleri yönetme


2
2016 itibarıyla bu cevabı ihtiyaçlarımıza en yakın takip ediyorum. Teşekkürler
Henrique de Sousa

2

Gitignore.io tarafından sağlanan api'yi kullanarak , otomatik olarak alabilirsiniz. İşte doğrudan bağlantı da gitignore.io/api/androidstudio

### AndroidStudio ###
# Covers files to be ignored for android development using Android Studio.

# Built application files
*.apk
*.ap_

# Files for the ART/Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/
out/

# Gradle files
.gradle
.gradle/
build/

# Signing files
.signing/

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

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

# Android Studio
/*/build/
/*/local.properties
/*/out
/*/*/build
/*/*/production
captures/
.navigation/
*.ipr
*~
*.swp

# Android Patch
gen-external-apklibs

# External native build folder generated in Android Studio 2.2 and later
.externalNativeBuild

# NDK
obj/

# IntelliJ IDEA
*.iml
*.iws
/out/

# User-specific configurations
.idea/caches/
.idea/libraries/
.idea/shelf/
.idea/workspace.xml
.idea/tasks.xml
.idea/.name
.idea/compiler.xml
.idea/copyright/profiles_settings.xml
.idea/encodings.xml
.idea/misc.xml
.idea/modules.xml
.idea/scopes/scope_settings.xml
.idea/dictionaries
.idea/vcs.xml
.idea/jsLibraryMappings.xml
.idea/datasources.xml
.idea/dataSources.ids
.idea/sqlDataSources.xml
.idea/dynamic.xml
.idea/uiDesigner.xml
.idea/assetWizardSettings.xml

# OS-specific files
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

# Legacy Eclipse project files
.classpath
.project
.cproject
.settings/

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.war
*.ear

# virtual machine crash logs (Reference: http://www.java.com/en/download/help/error_hotspot.xml)
hs_err_pid*

## Plugin-specific files:

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Mongo Explorer plugin
.idea/mongoSettings.xml

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

### AndroidStudio Patch ###

!/gradle/wrapper/gradle-wrapper.jar

# End of https://www.gitignore.io/api/androidstudio

1

Android Studio 0.8.4'ten itibaren .gitignore dosyası yeni projeye başlarken otomatik olarak oluşturulur. Varsayılan olarak şunları içerir:

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

Bu ifadeyi kabul ediyorum, ancak bu dosyayı değiştirmek / derlemek için yapılandırmak / (Bu / build ve / app / build içerecek) Bu yüzden benim app app / build tüm dosyaları ile bitmiyor.

Eclipse'den bir proje alırsanız, .gitignore öğesinin kopyalanmayacağını veya sizin için "otomatik olarak" oluşturulmayacağını unutmayın.


0

Derleme:

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

0

Android Studio'nun "Yoksayılan Dosyalar" listesini yok saydığı, ancak yine de Android Studio VCS'den yararlandığı tüm dosyaların içe aktarılmasını önlemek için aşağıdakileri yaptım: Bu işlem, Android Studio'daki "Yoksayılan Dosyalar" listesini kullanacak (içe aktarmadan sonra değil! Sırasında) VE hantal bir şekilde kullanmak zorunda kaçının Tortoise SVN svn: ignore listesini ayarlar.

  1. Doğrudan depoda yeni bir proje klasörü oluşturmak için Tortoise SVN havuz tarayıcısını kullanın.
  2. Almak istediğiniz klasörün üst kısmındaki yeni klasörü teslim almak için Tortoise SVN'yi kullanın. Yerel klasörün boş olmadığına dair bir uyarı alırsınız. Uyarıyı dikkate almayın. Artık sürüm bilgisi bulunmayan bir üst düzey klasörünüz var.
  3. Projenizi yerel çalışma dizininden açın. VCS artık otomatik olarak etkinleştirilmelidir
  4. Dosya -> Ayarlar -> Sürüm Denetimi -> Yok Sayılan Dosyalar içindeki dosya istisnalarınızı ayarlama
  5. Android Studio'dan SVN'ye dosya ekleme: Proje Yapısı -> VCS -> VCS'ye Ekle ('Yoksayılan Dosyalar "hariç tüm dosyaları ekler)' Uygulama'yı seçin
  6. Değişiklikleri Yap

Bundan sonra, "Yoksayılan Dosyalar" yok sayılır ve yine de VCS'yi Android Studio'dan yönetebilirsiniz.

Şerefe, -Joost


0

Android Studio 3.5.3

Bunu kütüphanelerim ve projelerim için kullanıyorum ve android stüdyosu ve diğer ünlü araçlar tarafından üretilen dosyaların çoğunu kapsıyor:

# Built application files
*.apk
*.ap_
*.aab

# Files for the ART/Dalvik VM
*.dex

# Generated files
bin/
gen/
out/
app/release/

# Gradle files
.gradle/
build/

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

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

# Freeline
freeline.py
freeline/
freeline_project_description.json

# fastlane
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
fastlane/test_output
fastlane/readme.md

#NDK
*.so

0

Bu, herhangi bir proje için en son güncellenen gitignore dosyasını oluşturabileceğiniz http://gitignore.io/ referansı kullanılarak oluşturulur . Android için http://gitignore.io/api/androidstudio . Bu yardımcı olur umarım. Şu anda Android Studio 3.6.3 kullanıyorum

# Created by https://www.gitignore.io/api/androidstudio
# Edit at https://www.gitignore.io/?templates=androidstudio

### AndroidStudio ###
# Covers files to be ignored for android development using Android Studio.

# Built application files
*.apk
*.ap_

# Files for the ART/Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/
out/

# Gradle files
.gradle
.gradle/
build/

# Signing files
.signing/

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

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

# Android Studio
/*/build/
/*/local.properties
/*/out
/*/*/build
/*/*/production
captures/
.navigation/
*.ipr
*~
*.swp

# Android Patch
gen-external-apklibs

# External native build folder generated in Android Studio 2.2 and later
.externalNativeBuild

# NDK
obj/

# IntelliJ IDEA
*.iml
*.iws
/out/

# User-specific configurations
.idea/caches/
.idea/libraries/
.idea/shelf/
.idea/workspace.xml
.idea/tasks.xml
.idea/.name
.idea/compiler.xml
.idea/copyright/profiles_settings.xml
.idea/encodings.xml
.idea/misc.xml
.idea/modules.xml
.idea/scopes/scope_settings.xml
.idea/dictionaries
.idea/vcs.xml
.idea/jsLibraryMappings.xml
.idea/datasources.xml
.idea/dataSources.ids
.idea/sqlDataSources.xml
.idea/dynamic.xml
.idea/uiDesigner.xml
.idea/assetWizardSettings.xml

# OS-specific files
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

# Legacy Eclipse project files
.classpath
.project
.cproject
.settings/

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.war
*.ear

# virtual machine crash logs (Reference: http://www.java.com/en/download/help/error_hotspot.xml)
hs_err_pid*

## Plugin-specific files:

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Mongo Explorer plugin
.idea/mongoSettings.xml

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

### AndroidStudio Patch ###

!/gradle/wrapper/gradle-wrapper.jar

# End of https://www.gitignore.io/api/androidstudio

-1

JetBrains Support'un bu resmi dokümanı, aşağıdakilerin dahil edilmesi gerektiğini söylüyor:

All files under .idea directory except workspace.xml and tasks.xml because
    they store specific user settings
All the *.iml files that can be located in different module directories

Ayrıca dikkat edilmesi gereken şeylerle ilgili başka öneriler de verir.


1
Bu neden oylandı? Hiçbir açıklama yapmadan oylar SO hakkında en kötü şeydir.
craned

-1

.gitignore gelen AndroidRate kütüphanesine

# 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

-1

https://github.com/github/gitignore harika bir koleksiyon

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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.