--- /dev/null
+#!/bin/bash
+
+curr_branch=$(git symbolic-ref --short HEAD)
+
+echo $curr_branch
+if [ $curr_branch != "master" ] && [ $curr_branch != "dev" ];
+then
+ curr_branch="dev"
+fi
+
+# checkout new submodule
+git submodule update --init
+# Synchronizes submodules' remote URL configuration setting to the value specified in .gitmodules
+git submodule sync
+# Checkout all submodules on right branches specified in .gitmodules, by default the branch is master
+git submodule foreach --recursive 'git checkout $(git config -f $toplevel/.gitmodules submodule.$name.branch-'$curr_branch' || echo master)'
+# Pull all submodules on right branches specified in .gitmodules, by default the branch is master
+git submodule foreach --recursive 'git pull origin $(git config -f $toplevel/.gitmodules submodule.$name.branch-'$curr_branch' || echo master)'