diff --git a/lib/util/git/index.ts b/lib/util/git/index.ts
index 4bbe056ea766751e412ce2c7ebcb7eb4b92c772f..7a674036c68c5e99365ec65ba5d066b02a2cae2b 100644
--- a/lib/util/git/index.ts
+++ b/lib/util/git/index.ts
@@ -740,18 +740,20 @@ export async function commitFiles({
           logger.trace({ err, fileName }, 'Cannot delete file');
           ignoredFiles.push(fileName);
         }
-      } else if (await isDirectory(join(localDir, fileName))) {
-        logger.warn({ fileName }, 'Skipping directory commit');
-        ignoredFiles.push(fileName);
       } else {
-        let contents: Buffer;
-        // istanbul ignore else
-        if (typeof file.contents === 'string') {
-          contents = Buffer.from(file.contents);
+        if (await isDirectory(join(localDir, fileName))) {
+          // This is usually a git submodule update
+          logger.trace({ fileName }, 'Adding directory commit');
         } else {
-          contents = file.contents;
+          let contents: Buffer;
+          // istanbul ignore else
+          if (typeof file.contents === 'string') {
+            contents = Buffer.from(file.contents);
+          } else {
+            contents = file.contents;
+          }
+          await fs.outputFile(join(localDir, fileName), contents);
         }
-        await fs.outputFile(join(localDir, fileName), contents);
         try {
           await git.add(fileName);
           addedModifiedFiles.push(fileName);