diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ad6b40b8093f9699e78689788292275ec3e4027a..61882d945fe3f1122dc5cb0b8288b4259ef00edd 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,6 +1,26 @@
+# WARNING!
+# OTB uses Git-LFS to store the (large) tests data.
+# Git-LFS is mostly transparent for the user and recent versions
+# are able to use Git-LFS quite efficiently.
+# But Git fails to manage efficiently numerous LFS data.
+# We have to use directly git-lfs wrapping commands to have an
+# efficient cloning step.
+# Furthermore, Git-LFS and Gitlab sufer a bug preventing usage of 
+# GIT_STRATEGY=fetch (https://gitlab.com/gitlab-org/gitlab-runner/issues/3318)
+
 variables:
   DOCKER_DRIVER: overlay2
   GIT_DEPTH: "3"
+  # Disable automatic checkout to let us fetch LFS before
+  GIT_CHECKOUT: "false"
+  # The fetch strategy fails with LFS and GitLab
+  GIT_STRATEGY: "clone"
+
+before_script:
+  # Provision efficiently the local LFS cache before checkout
+  - git lfs fetch origin $CI_COMMIT_REF_NAME
+  # Checkout the expected branch
+  - git checkout $CI_COMMIT_REF_NAME
 
 stages:
   - build