119

Just put an Android project under git (beanstalk) version control via the command line (mac terminal). Next step is to set up exclusions.

To those of you who have already been down this path:

What should a typical .gitignore file look like for an android project?

Project set up in Eclipse

8 Answers 8

181

You can mix Android.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 

with Eclipse.gitignore:

*.pydevproject .project .metadata bin/** tmp/** tmp/**/* *.tmp *.bak *.swp *~.nib local.properties .classpath .settings/ .loadpath # External tool builders .externalToolBuilders/ # Locally stored "Eclipse launch configurations" *.launch # CDT-specific .cproject # PDT-specific .buildpath 
Sign up to request clarification or add additional context in comments.

4 Comments

I didn't know github's gitignore repository, that's really an useful hint, thanks.
Do you really want to ignore .classpath? That seems a rather important thing to have in your git repository.
Interestingly, it looks like that's been altered since your comment, Chris. Thanks for the heads up! The updated file is in the link he posted.
In addition to .classpath, the other file you don't want to ignore is .project.
16

In addition to what the others have suggested, I'd like to add the proguard folder, in case you are using it. You can either ignore the whole folder or just dump.txt, seeds.txt and usage.txt. Basically, it's a good idea to keep mapping.txt versioned, so that you can debug obfuscated stack traces from your users. More details here.

Comments

5

This is my standard Android .gitignore and .hgignore file. It usually works pretty well.

bin gen target .settings .classpath .project *.keystore *.swp *.orig *.log *.properties seed.txt map.txt 

It has eclipse, vim .swp files, mavens target folder and files for proguard mapping included.

Update: I have put my .gitignore for Android development online.

3 Comments

Why the keystore file is there?
To not commit it, in case it's in that folder.
Yes but why? ``
4

Well I know that the github/gitignore repository on GitHub has an android .gitignore file. This might be what you want as it should be very general for android development.

The actual content of the mentioned file:

# 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 

Comments

2

Here is the one I use in my Android projects, it supports both ADT and Android Studio, so it is good if you are working with a team.

# General Folders # gradle/ comment this when using gradle wrapper. build/ bin/ gen/ tmp/ # proguard/ comment if not using proguard. .gradle/ .settings/ .idea/ # General Files .project .classpath .DS_Store local.properties *.iml # gradlew comment when using gradle wrapper # gradlew.bat comment when using gradle wrapper Thumbs.db # files specific to current project your_apk.apk 

Comments

1

Simply github can generate .gitignore for Android projects repositories

enter image description here

And its content will be like the following

# 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 

Comments

0

In Addition, if you use IDEA's IntelliJ, and you build Artifacts (and you should), then you might want to add:

out/ 

(that's where Artifacts are built by default).

And if you don't want to share your IntelliJ project stuff ignore

.idea/ 

Comments

-1

In my project root I have a file .gitignore. It contains:

/bin/ /gen/ 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.