diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..a5199a57
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+*.pyc
+*.egg-info
\ No newline at end of file
diff --git a/docs/changelog.rst b/docs/changelog.rst
index 4b4930f7..3f198e2c 100644
--- a/docs/changelog.rst
+++ b/docs/changelog.rst
@@ -7,6 +7,11 @@ Changelog
 Version 0.2
 ===========
 
+Version 0.2.5 (2023-09-13)
+--------------------------
+
+* Added partial support for git submodules. Now it is simply copied to a temporary folder from gitroot.
+
 Version 0.2.4 (2020-08-12)
 --------------------------
 
diff --git a/sphinx_multiversion/__init__.py b/sphinx_multiversion/__init__.py
index ce64e0c0..1328732c 100644
--- a/sphinx_multiversion/__init__.py
+++ b/sphinx_multiversion/__init__.py
@@ -2,7 +2,7 @@
 from .sphinx import setup
 from .main import main
 
-__version__ = "0.2.4"
+__version__ = "0.2.5"
 
 __all__ = [
     "setup",
diff --git a/sphinx_multiversion/git.py b/sphinx_multiversion/git.py
index 6ee52d8e..5fd58629 100644
--- a/sphinx_multiversion/git.py
+++ b/sphinx_multiversion/git.py
@@ -7,6 +7,8 @@
 import subprocess
 import tarfile
 import tempfile
+import shutil
+
 
 GitRef = collections.namedtuple(
     "VersionRef",
@@ -168,3 +170,18 @@ def copy_tree(gitroot, src, dst, reference, sourcepath="."):
         fp.seek(0)
         with tarfile.TarFile(fileobj=fp) as tarfp:
             tarfp.extractall(dst)
+
+        cmd = (
+            "git",
+            "submodule",
+            "status",
+        )
+        output = subprocess.check_output(cmd, cwd=gitroot).decode()
+        for line in output.splitlines():
+            fields = line.strip().split(" ")
+            if len(fields) != 3:
+                continue
+            name = fields[1]
+            srcpath = os.path.join(gitroot, name)
+            dstpath = os.path.join(dst, name)
+            shutil.copytree(srcpath, dstpath, dirs_exist_ok=True)