I’m currently under the process of moving all my workplace repositories from SVN to Git (configured to work with Gerrit). As a side not, I already found it to be a great tool for code review, line-precise commenting of the artifacts and for reviewing new employees code before pushing the changes to the repository.
But, back to my point. Recently I’ve stumbled upon a problem with committing an empty directory in Git. If the directory consists of some files and you stage those files, the directory will be committed automatically. However, if the directory is empty, you cannot commit it.
It’s very reasonable way of thinking, but it also creates a few problems e.g. with Eclipse which requires you to use
some Maven defined directories (src/test
, src/java
, etc.). More precisely, if you don’t have e.g. src/test/resources
directory, it will throw an ugly project-wide error at your face.
The solution, can be found on StackOverflow, so basically all you need to do is provide a .gitignore
file which
forbids content other than the .gitignore
file itself. However, in my case I ended up with putting a README file which
describes why it’s there and that it should be removed as first real resource will be uploaded.
I found it more informative for other team members than an empty .gitignore
file.