diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index cb33217312165864bd919a287847bfd9cda398be..f93c8a5ff5e8b20e396a6c1ab689e1fea5f0b966 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -43,7 +43,7 @@ update:
     - rm -rf gluon/openwrt/dl && mkdir -p gluon/openwrt && ln -s ../../ffs-openwrt-dl-cache gluon/openwrt/dl
   script:
     - make -C gluon GLUON_SITEDIR="$CI_PROJECT_DIR" GLUON_TARGET="$GLUON_TARGET" GLUON_BRANCH=stable FFS_BUILD_DATE=$(cat build.date) V=1 -j`nproc`
-    - cd gluon/openwrt/dl && git add . && git commit -m "update DL cache" && git push || true
+    - cd gluon/openwrt/dl && git add . && git commit -m "update DL cache" && git pull --rebase && git push || true
   except:
     - tags
   artifacts: