What's recommended .gitignore for Scala/sbt project in IntelliJ IDEA?

GitScalaIntellij IdeaSbt

Git Problem Overview


I created a new Scala/sbt project in IntelliJ IDEA 13. Since other team members will be working on this project (presumably with other IDEs), what should I put in the .gitignore? It seems some of the project dependencies are defined in the .idea folder, so I wasn't sure if I can put the whole directory in .gitignore or not.

Git Solutions


Solution 1 - Git

EDIT After discovering Joe:

Just ask Joe to take care of your .gitignore

Original Answer:

Since you're using Scala you should add:

target
*.class

These can be generated back easily and could be machine dependent.

If you're going to use IntelliJ then the following:

*.iml
*.ipr
*.iws
.idea
out

The .idea folder and the .iml files are created and used only by IntelliJ, other IDEs will just ignore them. They can be generated easily by IntelliJ if needed, try deleting your .idea folder and then open the project in IntelliJ and, lo and behold the first thing it does is generate the .idea folder and it's contents.

For Vim:

tags
.*.swp
.*.swo

For Eclipse(Scala IDE):

build
.classpath
.project
.settings
org.scala-ide.sdt.core/META-INF/MANIFEST.MF
org.scala-ide.sdt.update-site/site.xml`

For macOS:

.DS_Store

I think this covers the most popular IDEs for Scala. If someone's using an IDE not covered, you'll have to look around for what temporary and build files they create.

Solution 2 - Git

Here's what gitignore.io suggests for Scala and sbt:

# Created by https://www.gitignore.io/api/sbt,scala

### SBT ###
# Simple Build Tool
# http://www.scala-sbt.org/release/docs/Getting-Started/Directories.html#configuring-version-control

dist/*
target/
lib_managed/
src_managed/
project/boot/
project/plugins/project/
.history
.cache
.lib/

### Scala ###
*.class
*.log

# End of https://www.gitignore.io/api/sbt,scala

I usually recommend putting IDE / editor ignores into .git/info/exclude if you've got a mix of editors. This is a personal ignore file that does not get committed with the repository.

gitignore.io has suggestions for IDEs and editors too:

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionanshumansView Question on Stackoverflow
Solution 1 - Gitaa333View Answer on Stackoverflow
Solution 2 - GitChrisView Answer on Stackoverflow