diff --git a/.gitignore b/.gitignore
index 3ae135722d2aee9f8dd2198ff9b3df6a60867029..6180aa71bf136f7cc534d894d20bddd3cc601859 100644
--- a/.gitignore
+++ b/.gitignore
@@ -28,7 +28,8 @@ php_errors.log
 /plugins/*/tests/UI/screenshot-diffs
 /plugins/*/Test/UI/screenshot-diffs
 /robots.txt
-/tmp/
+/tmp/*
+!/tmp/.gitkeep
 /vendor/
 /.cache
 /.externalToolBuilders
diff --git a/tests/PHPUnit/Integration/ReleaseCheckListTest.php b/tests/PHPUnit/Integration/ReleaseCheckListTest.php
index 189a560c8547ae711b5b8477448a11ba34de9277..2c92d75c61c67b1748eb22a7204f9e7a89189f66 100644
--- a/tests/PHPUnit/Integration/ReleaseCheckListTest.php
+++ b/tests/PHPUnit/Integration/ReleaseCheckListTest.php
@@ -300,6 +300,11 @@ class ReleaseCheckListTest extends \PHPUnit_Framework_TestCase
         $this->assertTrue(preg_match($pattern, $contents) == 0);
     }
 
+    public function testTmpDirectoryContainsGitKeep()
+    {
+        $this->assertFileExists(PIWIK_DOCUMENT_ROOT . '/tmp/.gitkeep');
+    }
+
     private function checkFilesAreInPngFormat($files)
     {
         $this->checkFilesAreInFormat($files, "png");
diff --git a/tmp/.gitkeep b/tmp/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391