diff --git a/set_env.sh b/set_env.sh
index 102f446418b8c0b2af04000db63fa557ea3757d0..f93060c136df0673e310117659e5f612b8904f0c 100755
--- a/set_env.sh
+++ b/set_env.sh
@@ -64,7 +64,7 @@ if [ ! -f $PROJECT_DIR/.socinit ]; then
     git submodule update --remote --recursive
     git submodule foreach --recursive git checkout main
     # Read proj-branch file to find out which branch each subrepo needs to be on
-    git config --file .gitmodules --get-regexp path | awk '{ print $2 }' | while read line; do cd $PROJECT_DIR/$line && git checkout `grep $line $PROJECT_DIR/proj-branch | awk '{ print $2 }'`; done
+    git config --file .gitmodules --get-regexp path | awk '{ print $2 }' | while read line; do cd $PROJECT_DIR/$line && git checkout `grep $line $PROJECT_DIR/proj-branch | awk '{ print $2 }'` && git pull; done
     git restore $DESIGN_ROOT/.gitmodules
     touch $PROJECT_DIR/.socinit
 fi
\ No newline at end of file