O que deve estar no meu .gitignore para um projeto do Android Studio?

1256

Quais arquivos devem estar no meu .gitignorepara um projeto do Android Studio?

Eu já vi vários exemplos que incluem, .imlmas os documentos do IntelliJ dizem que isso .imldeve ser incluído no seu controle de origem.

respectTheCode
fonte
7
github.com/github/gitignore
Yousha Aleayoub

Respostas:

1330

Atualizado para o Android Studio 3.0 Compartilhe os itens ausentes nos comentários.

Uma resposta tardia, mas nenhuma das respostas aqui e aqui estava certa para nós ...

Então, aqui está o nosso arquivo gitignore:

#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

Desde o Android Studio 2.2 e até 3.0, novos projetos são criados com este arquivo gitignore:

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

Descontinuado - para formato de projeto mais antigo, adicione esta seção ao seu arquivo gitignore:


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

Este arquivo deve estar localizado na pasta raiz do projeto e não dentro da pasta do módulo do projeto.

Editar notas:

  1. Desde a versão 0.3+, parece que você pode confirmar e enviar arquivos * .iml e build.gradle . Se o seu projeto for baseado no Gradle: na nova caixa de diálogo Abrir / Importar, marque a "use auto import"caixa de seleção e marque o "use default gradle wrapper (recommended)"botão de opção. Todos os caminhos agora são relativos, como @ George sugeriu.

  2. Resposta atualizada de acordo com a fonte anexada @ 128KB e as sugestões @ Skela

Lior Iluz
fonte
8
Por que precisamos importar o projeto e adicionar manualmente bibliotecas e dependências do módulo? Existe alguma maneira de preservar essas coisas no repositório e quando clonamos o repositório, basta abrir um projeto?
23413 Justin
13
A maneira correta de fazer isso é fazer o check-in dos arquivos * .iml e * .ipr e apenas abri-los no IDE. Por que forçar outras pessoas em sua equipe a recriar esses arquivos e por que permitir que elas usem configurações possivelmente incorretas (como a versão sdk)?
Sky Kelsey
26
@iorior, eu discordo. Esta é a primeira resposta que outras pessoas verão e é amplamente votada. Devido a todas as coisas que você precisa fazer para iniciar um projeto e executar um novo clone do git usando esse particular .gitignore, sinto fortemente que isso não é o que a maioria das pessoas precisaria. Embora eu ache que o número de votos positivos me diga o contrário, mas ainda não concordo. No mínimo, talvez algumas informações afirmando que você provavelmente terá que configurar o projeto novamente e não funcionará imediatamente.
Skela
10
@iorior, eu não quero ser rude ou qualquer coisa, companheiro, por favor, não leve para o lado pessoal. O problema é que essas coisas precisam funcionar com uma quantidade mínima de configuração para ter qualquer uso prático. Quando você precisar importar o projeto e adicionar manualmente dependências do módulo, ele entra imediatamente em um domínio de loucura. Quando você está familiarizado com um projeto e conhece essas coisas de dentro para fora, não há problema com sua abordagem. Mas para um desenvolvedor que está clonando o projeto pela primeira vez, isso não é tão prático. Estou realmente apenas tentando garantir que sua abordagem não se torne a norma.
Skela 12/03
14
Você não deve versão dos .imlarquivos, a menos que não queira lidar com aborrecimentos desnecessários se outros usuários nomearem o projeto de maneira diferente quando fizerem o check-out.
theblang
151

Com base no meu .gitignore normal do Android , e depois de ler a documentação no site da Intellij IDEA e ler as postagens no StackOverflow, criei o seguinte arquivo:

# 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

Observe também que, como indicado, a seção de arquivos nativos criados é útil principalmente quando você cria seu próprio código nativo com o NDK do Android. Se, por outro lado, você estiver usando uma biblioteca de terceiros que inclui esses arquivos, remova essas linhas (* .o e * .so) do seu .gitignore.

Phil
fonte
10
Quase certo. Não acho que seja uma boa idéia ignorar *., Porque você não poderá trabalhar com projetos que tenham dependências vinculadas nas bibliotecas NDK. Mas um ponto de partida muito bom para todas as contas!
Skela 12/03
@ Skela bom ponto. Eu os tinha lá quando estava criando meus próprios arquivos nativos - mas também trabalhei em projetos que exigem uma cópia e colagem simples de arquivos pré-criados. Eu adicionei uma nota sobre isso à resposta acima.
Phil
@Phil Você tem alguma opinião sobre os arquivos XML .idea/libraries? Eles devem ser compartilhados ou excluídos na sua opinião?
Alex Lockwood
1
@AlexLockwood Acho que esses arquivos devem ser incluídos se o projeto não depender de outro projeto ou módulo. Se, no entanto, o projeto depender de um módulo que contenha as bibliotecas, esse arquivo deverá ser ignorado no nível do projeto, mas não pelo módulo.
29414 Phil
@ Phil muito legal e eu tenho usado isso até agora, mas um arquivo dex desliza através das fendas: /moduledirectory/build/intermediates/dex-cache/cache.xml - não faria sentido adicionar ** / build para excluir as pastas de compilação nos módulos também?
Oliver Hausler 30/11
82

Atualizado 7/2015:

Aqui está a fonte definitiva do JetBrains


Formato de projeto baseado em diretório (diretório .idea)

Esse formato é usado por todas as versões recentes do IDE por padrão. Aqui está o que você precisa compartilhar:

  • Todos os arquivos no .ideadiretório na raiz do projeto, exceto os arquivos workspace.xmle tasks.xmlque armazenam configurações específicas do usuário
  • Todos os .imlarquivos de módulo que podem ser localizados em diferentes diretórios de módulo (aplica-se ao IntelliJ IDEA)

Tenha cuidado ao compartilhar o seguinte:

  • Artefatos Android que produzem uma construção assinada (conterão senhas de keystore)
  • No IDEA 13 e versões anteriores dataSources.ids, datasources.xmlpode conter senhas do banco de dados. A IDEA 14 resolve esse problema .

Você pode considerar não compartilhar o seguinte:

  • arquivo gradle.xml, consulte esta discussão
  • pasta de dicionários do usuário (para evitar conflitos se outro desenvolvedor tiver o mesmo nome)
  • Arquivos XML .idea/librariesem caso de serem gerados a partir do projeto Gradle

Formato de projeto herdado ( .ipr/ .iml/ .iwsfiles)

  • Compartilhe o .iprarquivo do projeto e todos os .imlarquivos do módulo, não compartilhe o .iwsarquivo, pois ele armazena configurações específicas do usuário

Embora essas instruções sejam para o IntelliJ IDEA, elas são verdadeiras 100% para o Android Studio.


Aqui está um .gitignoretrecho que incorpora todas as regras acima:

# Android Studio / IntelliJ IDEA 
*.iws
.idea/libraries
.idea/tasks.xml
.idea/vcs.xml
.idea/workspace.xml
Sky Kelsey
fonte
Quais SDKs são suportados são definidos no AndroidManifest.xml (e também pela Gradle). Qualquer SDK permitido por essa configuração deve estar ok para desenvolvimento. Em relação aos estilos de código: isso não é algo que deve ser mantido em cada projeto separadamente e, além disso, deve ser esclarecido independentemente do IDE. Cabeçalhos de direitos autorais: espero que estejam na sua base de código e não em nenhum arquivo de projeto do IDE. Caso contrário, a construção na linha de comando simplesmente não incluí-los ...
Risadinha
@Risadinha 1) Os SDKs também são definidos no nível do IDE. Eles são referenciados no manifesto, mas o arquivo do projeto contém as definições reais do SDK. 2) O estilo do código deve ser mantido pelo menos no nível do projeto. Idealmente, todos escreveriam Java padrão, mas tudo bem. 3) Os cabeçalhos de direitos autorais são armazenados no projeto. Eles são usados ​​para a criação de novos arquivos e podem conter macros para nome, nome da empresa, projeto, data etc. Recomendamos que você os verifique! Em resumo, os arquivos do projeto contêm meta-informações importantes sobre o projeto que precisam ser compartilhadas e controladas por toda a equipe.
quer
3
Um mantenedor retirou as alterações para seu próprio repositório . Provavelmente será colocado no mestre em breve.
FalconC
5
O JetBrains descontinuou o DOC-1186 e colocou suas recomendações atualizadas em uma nova postagem : DO INCLUDE: Todos os arquivos no diretório .idea na raiz do projeto, exceto o workspace.xml e o tasks.xml e todos os arquivos .iml. Tenha cuidado ao compartilhar artefatos Android que produzem uma construção assinada (conterão senhas de keystore), dataSources.ids e datasources.xml (eles podem conter senhas). CONSIDERANDO EXCLUIR: gradle.xml, pasta de dicionários do usuário e arquivos XML em .idea / libraries (caso sejam gerados a partir do projeto Gradle).
precisa saber é o seguinte
2
Essa é uma teoria adorável, mas isso simplesmente não funciona para nós. Nós sempre terminamos com arquivos .iml com entradas como esta: <orderEntry type="jdk" jdkName="1.6 (38)" jdkType="JavaSDK" />Observe o número 38 que parece estar sendo incrementado constantemente. (o arquivo misc.xml também tem esse problema).
Sam
41

Eu discordo de todas essas respostas. A configuração a seguir está funcionando muito bem para o aplicativo da nossa organização.

Eu ignoro:

  • /build
  • /.idea(com possíveis exceções, veja os comentários na resposta de dalewking )
  • *.iml
  • local.properties

Eu acho que quase todo mundo concorda em /build .

Fiquei cansado de ver constantemente mensagens sobre os vários library.xmlarquivos que Gradle cria ou exclui /.idea. Eles build.gradleserão executados no local dos desenvolvedores quando eles fizerem o check-out pela primeira vez. Por que esses arquivos XML precisam ser versionados? O Android Studio também gerará o restante /.ideaquando um desenvolvedor criar um projeto usando Check out from Version Control, então por que algo nessa pasta precisa ser versionado?

Se a *.imlversão for versionada, um novo usuário terá que nomear o projeto exatamente como era quando foi confirmado. Como este também é um arquivo gerado, por que versão em primeiro lugar?

Os local.propertiesarquivos apontam para um caminho absoluto no sistema de arquivos para o SDK, portanto, definitivamente não deve ser versionado.

Editar 1 : Adicionado .gradlepara ignorar o material de armazenamento em cache do gradle que não deve ser versionado (obrigado Vasily Makarov ).

Edit 2 : Adicionado .DS_Storeagora que estou usando o Mac. Esta pasta é específica para Mac e não deve ser versionada.

Nota adicional : Você provavelmente também deseja adicionar um diretório para inserir suas chaves de assinatura ao criar uma versão de lançamento.

Para conveniência de copiar / colar :

.gradle
/build
/.idea
*.iml
local.properties
.DS_Store 
theblang
fonte
4
Eu concordo com a sua resposta. Eu também acredito que nem o .iml * ou .idea arquivos devem ser versionadas: stackoverflow.com/a/26290130/2948212
diegosasw
7
Meu voto é para o seu gitignore, pois é muito parecido com o meu. Sugestões de casal: use em build/vez de /buildpara corresponder aos diretórios de construção do módulo, como app/build. Use .gradlepara corresponder ao diretório de armazenamento em cache gradle.
Vasily Makarov
Eu também pergunta por que as listas gitignore default / construção em vez de build / eu acabar com todos os arquivos em app / construção no meu repositório se eu usar / build
guyland123
@ guyland123 Acabei de perceber que tenho outro .gitignorearquivo no diretório de aplicativos que também contém /build. Isso é gerado automaticamente, não me lembro? Então build/será aplicado a subpastas?
theblang
@mattblang yes .gitignore é gerado automaticamente quando você cria um novo projeto. Entretanto, ele não é criado quando você importa um projeto do Eclipse. build / corresponderá a todos os diretórios denominados "build" abaixo do local do arquivo .gitignore. Por exemplo. app / build será ignorado.
guyland123
37

Eu uso esse .gitignore. Encontrei-o em: http://th4t.net/android-studio-gitignore.html

*.iml
*.iws
*.ipr
.idea/
.gradle/
local.properties

*/build/

*~
*.swp
helbaroudy
fonte
1
* / build / não está ignorando arquivos inalterados no meu diretório de build. alguma ideia? @ Resolvido: eu tive que adicionar * / * / build / como minha pasta de compilação tinha alguns diretórios profundos.
Speedynomads
35

No caso do Android Studio, os únicos arquivos que precisam ser salvos no controle de versão são os arquivos necessários para criar o aplicativo a partir da linha de comando usando gradle. Então você pode ignorar:

  • * .iml
  • .idéia
  • Construir

No entanto, se você salvar quaisquer configurações IDE, como configurações personalizadas de estilo de código, elas serão salvas na pasta .idea. Se você deseja essas alterações no controle de versão, salve os arquivos IDEA (* .iml e .idea).

Siva Velusamy
fonte
3
Obrigado por explicar isso. .. Pelo que tenho lido, se você estiver indo para incluir .idea em seu projeto você deve ignorar * / ideia / workspace.xml e * / ideia / tasks.xml
respectTheCode
15
não ignore a pasta .idea por enquanto. O plug-in Gradle ainda não tem nenhuma tarefa 'idéia de gradle' e o projeto de importação no Android Studio está longe de ser perfeito agora.
Robotoaster
2
Além disso, se você estiver trabalhando em uma equipe, considere ignorar o local.properties porque ele contém o caminho sdk codificado.
Calin
@robotoaster, você ainda recomendaria não ignorar a pasta .idea?
loeschg
@Ioeschg não é mais necessário. se você fizer o checkout do git repo, use Import New Project e ele funcionará bem, desde que os arquivos de compilação estejam presentes.
Robotoaster #
20

Android Studio 3.4

Se você criar um projeto Gradle usando o Android Studio, o .gitignore arquivo conterá o seguinte:

.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

Eu recomendaria ignorar o diretório ".idea" completo, pois contém configurações específicas do usuário, nada importante para o processo de compilação.

Pasta do projeto Gradle

A única coisa que deve estar na sua pasta de projeto (Gradle) após a clonagem de repositório é essa estrutura (pelo menos nos casos de uso que encontrei até agora):

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

É recomendável fazer o check-in nos scripts do wrapper gradle (veja aqui ).

Para disponibilizar os arquivos do Wrapper para outros desenvolvedores e ambientes de execução, você precisará verificá-los no controle de versão.

Willi Mentzel
fonte
1
Por que você deve manter binários como gradlew e gradle.bat?
Bilthon
2
@ Bilthon Eles não são binários. Eles são scripts de inicialização gradle para Windows (gradle.bat) e Linux (gradlew).
Willi Mentzel 24/03
Ohh ... vejo que você está certo, mas eles não são gerados automaticamente de qualquer maneira?
Bilthon
2
@ Gilthon De fato, eles são! Eles são gerados com opções padrão. Se você alterar alguma coisa, elas deverão ser incluídas no seu repositório para compilá-lo corretamente ao fazer o check-out novamente. Eles são tão pequenos que não machuca mantê-los sempre.
Willi Mentzel 27/03
2
Além disso, verifique este recurso oficial aqui que explicitamente recomenda a cometer os scripts de mensagens publicitárias Gradle para controle de origem: docs.gradle.org/current/userguide/...
friederbluemle
19

Meu conselho seria também para não ignorar a pasta .idea.

Importei um projeto Eclipse baseado em Git para o Android Studio e isso foi bom. Mais tarde, quis importar este projeto com o Git (como a primeira vez) para outra máquina com o Android Studio, mas isso não funcionou. O Android Studio carregou todos os arquivos, mas não conseguiu "ver" o projeto como um projeto. Eu só consegui abrir arquivos Git.

Ao importar o projeto pela primeira vez (do Eclipse para o Android Studio), meu antigo .gitignore foi substituído e o novo ficou assim:

  • .idea / .name
  • .idea / compiler.xml
  • .idea / copyright / profiles_settings.xml
  • .idea / encodings.xml
  • .idea / libraries / libs.xml
  • .idea / misc.xml
  • .idea / modules.xml
  • .idea / scopes / scope_settings.xml
  • .idea / vcs.xml
  • .idea / workspace.xml

Então, tentei usar um gitignore vazio e agora funcionava. O outro Android Studio pode carregar os arquivos e o Projeto. Acho que alguns arquivos não são importantes (profiles_settings.xml)para o Git e a importação, mas estou feliz por ter funcionado.

Ingo
fonte
Em github.com/joeblau/gitignore.io/issues/… : erge Baranov (IntelliJ) 26 de setembro de 14:23 CEST Dependeria do projeto. Se o projeto for importado do Maven ou Gradle, os arquivos .iml são gerados automaticamente e não podem ser compartilhados; caso contrário, esses arquivos são essenciais para o projeto e devem ser compartilhados para que outros usuários possam abrir o projeto após o checkout. Os arquivos .iml contêm todas as informações sobre a configuração do módulo (raízes, pastas de origem, dependências etc.).
Adrian Romanelli
9

É a melhor maneira de gerar .gitignorevia aqui

Jacky
fonte
1
Não consigo fazer isso funcionar no Android Studio. Se eu apenas selecionar "android", parece ser uma implementação do Eclipse. Estou fazendo errado?
Zipzit
A única menção ao Eclipse está em uma linha: "Pasta Proguard gerada pelo Eclipse". O resto parece OK para AS
Jose_GD 26/02
@zipzit, possivelmente você esteja certo. Parece que o site gera .gitignore não para o Android Studio, pois não contém .idea /.
CoolMind
1
Também existe a opção Android Studio
Daniyal Javaid
8

Não há necessidade de adicionar ao controle de origem qualquer um dos seguintes:

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

Portanto, você pode configurar o hgignore ou o gitignore de acordo.

A primeira vez que um desenvolvedor clona o controle de origem pode:

  1. Abra o Android Studio
  2. Projeto de Importação
  3. Procure o build.gradle no repositório clonado e abra-o

Isso é tudo

PS: O Android Studio obterá, através do maven, o plug-in gradle, assumindo que o seu build.gradle seja semelhante a este:

// 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()
    }
}

O Android studio irá gerar o conteúdo da pasta .idea (incluindo o workspace.xml, que não deve estar no controle de origem porque é gerado ) e a pasta .gradle.

Essa abordagem é compatível com o Eclipse da maneira que o controle de origem realmente não sabe nada sobre o Android Studio. O Android Studio só precisa do build.gradle para importar um projeto e gerar o restante.

diegosasw
fonte
5
Pessoal, aqueles que votam negativamente devem fornecer um motivo válido para isso. Pode ser útil informar a todos / todos se estamos enganados com a nossa resposta.
precisa saber é o seguinte
1
There is NO NEEDsim, existem alguns casos: modelos de direitos autorais que precisam ser compartilhados entre os membros da equipe, por exemplo.
Henrique de Sousa
8

Apoio a confirmação da pasta .idea (excluindo workspace.xmletasks.xml ). Mas estou começando a concluir que os arquivos .iml devem ser ignorados.

Aqui está o problema:

Abra um projeto em um diretório chamado "foo", por exemplo, e você obterá foo.iml e tudo parecerá bem. O problema é que, se eu simplesmente renomear o diretório para foo2 (ou cloná-lo em outro nome de diretório) ao tentar abrir o projeto no Android Studio, você obterá três coisas:

  • Um novo arquivo iml chamado foo2.iml
  • O arquivo iml do seu projeto Android será alterado para apontar agora para foo2 como pai
  • .idea / modules.xml terá uma linha adicionada para foo2.iml, para que ele possua o arquivo iml antigo e o do novo diretório

Não consigo encontrar uma maneira de impedir que o Android Studio faça essa geração de arquivos iml quando o projeto é armazenado em um diretório diferente. Adicioná-los ao controle de origem causará problemas. Portanto, acho que talvez devêssemos ignorar os arquivos * .iml e.idea/modules.xml

ceder
fonte
Eu ignoro os arquivos /.ideae .iml. Gostaria de saber por que a .ideapasta deve ser confirmada.
theblang
Olhando para o meu projeto atual, acho que há apenas duas coisas que fiz check-in nas configurações de estilo de código .idea /: a serem aplicadas à equipe e um dicionário do usuário que contém palavras específicas do projeto que não são reais. Comecei com muitos arquivos em .idea confirmados, mas quando um arquivo começa a aparecer como alterado sem um bom motivo, ele é adicionado ao .gitignore. Meu argumento não era tanto que o .idea deveria ser verificado, como era o caso dos arquivos .iml e modules.xml.
Desculpe, SO pegou meu comentário antes de terminar (lembre-se de que os comentários não aceitam quebras de linha). Editado com o resto dos meus pensamentos.
Obrigado! Sim, esses arquivos que você mencionou fazem sentido. Concordo que a maior dor de cabeça foram os library.xmlarquivos que continuavam acionando as mensagens. Além disso, não entendo por que continuo vendo as pessoas dizerem que os arquivos * .iml devem ser incluídos, por isso é ótimo.
theblang
8

Testado com Android Studio 3.0

Pode ser necessário instalar o .ignore plugin .

Você pode gerar automaticamente o arquivo .gitignore para Android. Clique com o botão direito na pasta e siga

Adicionar arquivo .gitignore

Em seguida, selecione Android no painel esquerdo e clique em Gerar

Gerar arquivo .gitignore

O Android Studio gera um arquivo .gitignore que contém todo o arquivo necessário para ser ignorado.

Retirado de http://menukanows.com/how-to-add-gitignore-file-in-android-project/

Menuka Ishan
fonte
7

Depende de como o formato do seu projeto é mantido:

Você tem duas opções:

  1. Formato baseado em diretório (você terá uma .ideapasta que contém os arquivos específicos do projeto)
  2. Formato baseado em arquivo (os arquivos de configuração são .iwse .ipr)

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

Os arquivos comprometidos com o controle de versão dependem do acima:

  1. Inclua a pasta .idea no controle de versão, exclua workspace.xmle tasks.xml
  2. O .iprarquivo de controle de versão e todos os .imlarquivos do módulo excluem o .iwsarquivo, pois ele armazena configurações específicas do usuário.

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

ramk
fonte
1
todos os meus projetos parecem ter ambas as pastas .idea e .iws arquivos
respectTheCode
1
Pessoalmente, tentei seguir os conselhos do JetBrains, mas não funcionou para mim. Eu e outro desenvolvedor estamos usando o Android Studio e tivemos o arquivo .idea e .iml no git. Logo descobri que uma vez que você começa a mesclar commits e apresenta todos os tipos de problemas quando a ferramenta de mesclagem falha ao mesclar qualquer um dos arquivos no caminho .idea. Como resultado, adicionei todos os imls e .idea ao gitignore. Afinal, o Studio faz um bom trabalho ao criar a estrutura do projeto ao importar o projeto Gradle. Então agora eu presto muita atenção ao que tenho nos meus arquivos de notas.
Zmicer
5

Basicamente, qualquer arquivo que é regenerado automaticamente.

Um bom teste é clonar seu repositório e ver se o Android Studio é capaz de interpretar e executar seu projeto imediatamente (gerando o que está faltando).
Caso contrário, encontre o que está faltando e verifique se ele não é ignorado, mas adicionado ao repositório.

Dito isto, você pode dar exemplo de .gitignorearquivos existentes , como o 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/
VonC
fonte
11
Isto está incorreto. Você deve verificar seus arquivos * .iml e, provavelmente, .idea e * .ipr também. A parte "qualquer coisa que é gerada automaticamente" está especialmente errada. A maioria dos projetos do Android é gerada automaticamente, afinal.
Sky Kelsey
6
O * .iml, * .idea e * .ipr são específicos do Android-Studio / IntelliJ. Eles não são necessários para construir o projeto. Como eles são específicos do IDE e não da cadeia de construção, provavelmente não devem ser registrados. Todos podem usar qualquer IDE, não há motivo para fazer o check-in dos arquivos de projeto do IntelliJ e não dos do Eclipse, por exemplo.
Marc Plano-Lesay
2
Se você deseja trabalhar em vários garfos do mesmo projeto ou com uma equipe em que todos usam o mesmo IDE ou ter controle de versão das intrincadas configurações usadas para o seu IDE, sim, verifique os arquivos. Arquivos de projeto para IntelliJ são muito mais do que um simples buço usado para abrir seu código em um editor.
Sky Kelsey
2
por que meus arquivos iml continuam sendo exibidos conforme alterados entre mim e meu colega? especificamente external.root.project.path continua a mudar sob a tag <module />
Sam
Usando o Android Studio 0.8.12 no Windows 8.1 e no OS X Mavericks com o mesmo projeto, observe que os dois arquivos a seguir são modificados e marcados como alterados pelo Git quando abro o projeto: <nome do projeto> .iml e .idea \ misc.xml. Especificamente: <excludeFolder url = "file: // $ MODULE_DIR $ / build / tmp" /> é adicionado ou removido para / de <nome do projeto> .iml e .idea \ misc.xml alterado para diferenças de instalação devido ao JDK entre SOs.
Jkwuc89
4

Estou ciente de adicionar os arquivos .iml e Intellij sez para adicionar a pasta .idea, mas ignore .idea / workspace.xml e .idea / tasks.xml, mas e quanto a .idea / libraries /?

Não vejo como faz sentido adicionar isso. Ele possui uma lista de arquivos XML que listam as bibliotecas que o projeto Android Studio deve conhecer. Eles devem vir das dependências definidas pelo build.gradle - não um arquivo de projeto do IDE.

Além disso, o conteúdo de um desses arquivos se parece com o seguinte:

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

Não faz sentido comprometer isso. E se o usuário especificou um diretório inicial diferente para gradle, ou se eles usarem uma versão diferente, o caminho abaixo .gradle/caches/artifacts-xxxserá diferente para eles (ou seja, artifacts-o número anexado ao final se relacionará ao lançamento da versão gradle que você está usando. ) Esses caminhos não são universais e, no entanto, o conselho é verificar tudo isso?

zenocon
fonte
4

A partir do .gitignorearquivo Android Studio 0.8.4 é gerado automaticamente ao iniciar um novo projeto. Por padrão, ele contém:

.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
Johnny Doe
fonte
3

Eu sei que esse é um tópico antigo e certamente existem muitas opções, mas eu realmente prefiro giboSimon Whitaker. É super simples de usar, multiplataforma (mac, * nix e windows) e usa o repositório do github gitignorepara que esteja (basicamente) sempre atualizado.

Verifique se o cache local está atualizado:

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

Procure o idioma / tecnologia que você precisa:

    $ gibo --search android
    Android

Exiba o arquivo .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

Agora, adicione-o ao arquivo .gitignore do seu projeto:

    $ gibo Android >> .gitignore

(Certifique-se >>de anexar ao arquivo .gitignore do seu projeto; um> será sobrescrito - como já fiz muitas vezes por acidente!)

Eu sei que isso não está respondendo à pergunta exata do OP, mas o uso do gibo faz com que você praticamente não precise mais pensar na 'pergunta'! .. é legal! ;)

wasatchwizard
fonte
3

Para ter uma idéia melhor, tudo o que você precisa são os seguintes arquivos

  • aplicativo
  • build.gradle
  • settings.gradle

Estrutura básica do projeto Android

Você pode colocar todo o resto no arquivo .gitignore. Todas as alterações no seu aplicativo estão principalmente nesses arquivos e pastas. O resto que você vê em um projeto básico são arquivos de compilação gradle ou arquivos de configuração do Android Studio.

Se você estiver usando o Android Studio, poderá usar "Importar projeto" para criar o projeto com sucesso. Como alternativa, você pode criar usando a linha de comando, siga Construindo Projetos Android com Gradle .

Kalan Nawarathne
fonte
3

É melhor adicionar a lista .gitignore durante o tempo de desenvolvimento para evitar efeitos colaterais desconhecidos quando o Controle de Versão não funcionar por algum motivo, devido à lista predefinida (copiar / colar) de algum lugar. Para um dos meus projetos, a lista de ignorados é apenas de:

.gradle
.idea
libs
obj
build
*.log
Tim Long
fonte
3

O Github mantém itens úteis do gitignore para vários tipos de projetos. Aqui está a lista de itens úteis do gitignore para projetos Android.

# 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

Gitignore para Android no github

Sudip Bhandari
fonte
3
Embora esse link possa responder à pergunta, é melhor incluir aqui as partes essenciais da resposta e fornecer o link para referência. As respostas somente para links podem se tornar inválidas se a página vinculada for alterada. - Da avaliação
imtheman 15/02
@imtheman plausível .. Eu atualizei a resposta e colocar o link como referência
Sudip Bhandari
2

Mesclar arquivos .gitignore do Github

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

Leia: Suporte ao JetBrains: Como gerenciar projetos em sistemas de controle de versão

d.danailov
fonte
2
A partir de 2016, sigo essa resposta como a mais próxima de nossas necessidades. Obrigado
Henrique de Sousa
2

Usando a API fornecida pelo gitignore.io , você pode obter é gerado automaticamente. Aqui está o link direto também 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
Daniyal Javaid
fonte
1

A partir do arquivo .gitignore do Android Studio 0.8.4, é gerado automaticamente ao iniciar um novo projeto. Por padrão, ele contém:

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

Concordo com esta declaração, no entanto, modifico esse arquivo para alterar / construir para construir / (Isso incluirá / build e / app / build). Portanto, não acabo com todos os arquivos em app / build no meu repositório.

Observe também que, se você importar um projeto do Eclipse, o .gitignore não será copiado ou "criado automaticamente" para você.

guyland123
fonte
0

Compilação:

#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/
Aqib Mumtaz
fonte
0

Para contornar a importação de todos os arquivos, nos quais o Android Studio ignora a lista "Arquivos ignorados", mas ainda utiliza o Android Studio VCS, fiz o seguinte: Isso usará a lista "Arquivos ignorados" do Android Studio (após a importação! Não durante) E evite ter que usar a maneira complicada que o Tortoise SVN define a lista svn: ignore.

  1. Use o navegador do repositório Tortoise SVN para criar uma nova pasta de projeto diretamente no repositório.
  2. Use o Tortoise SVN para fazer check-out da nova pasta na parte superior da pasta que você deseja importar. Você receberá um aviso de que a pasta local não está vazia. Ignore o aviso. Agora você tem uma pasta de nível superior com versão com conteúdo não versionado.
  3. Abra seu projeto no diretório local de trabalho. Agora, o VCS deve ser ativado automaticamente
  4. Defina suas exceções de arquivo em Arquivo -> Configurações -> Controle de versão -> Arquivos ignorados
  5. Adicionar arquivos ao SVN do Android Studio: selecione 'App' em Estrutura do projeto -> VCS -> Adicionar ao VCS (isso adicionará todos os arquivos, exceto "Arquivos ignorados")
  6. Confirmar as alterações

A partir de agora, "Arquivos ignorados" será ignorado e você ainda poderá gerenciar o VCS no Android Studio.

Saúde, -Joost

Joost
fonte
0

Android Studio 3.5.3

Eu uso isso para minhas bibliotecas e projetos e abrange a maioria dos arquivos gerados pelo android studio e outras ferramentas famosas:

# 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
Squti
fonte
0

Isso é criado usando a referência de http://gitignore.io/ Onde você pode criar o arquivo gitignore atualizado mais recente para qualquer projeto. Para Android http://gitignore.io/api/androidstudio . Espero que isto ajude. Atualmente, estou usando o Android Studio 3.6.3

# 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
Vinodh Ram
fonte
-1

Esta documentação oficial do Suporte JetBrains diz que o seguinte deve ser incluído:

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

Ele também fornece outras recomendações de coisas com as quais você deve ter cuidado.

guindaste
fonte
1
Por que isso foi rejeitado? Os votos negativos sem explicação são a pior coisa do SO.
craned
-1

.gitignore da biblioteca AndroidRate

# 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
Alexander Savin
fonte
-1

https://github.com/github/gitignore é uma coleção incrível

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
shellhub
fonte