diff --git a/start.sh b/start.sh
index bb862bfa255ca1880ce93fe797dc0f96824001d6..63a2a1aea4c77292363961287de37d513274b031 100755
--- a/start.sh
+++ b/start.sh
@@ -247,9 +247,16 @@ if [[ -d .git ]]; then
     echo "#!/bin/sh" > .git/hooks/post-checkout
     chmod +x .git/hooks/post-checkout
   fi
-  HOOK_DEFINED=$(grep /usr/local/bin/update-env .git/hooks/post-checkout)
-  if [[ "$HOOK_DEFINED" = "" ]]; then
-    echo "docker exec ${COMPOSE_PROJECT_NAME}_l3d /usr/local/bin/update-env" >> .git/hooks/post-checkout
+  OLDCOMMAND='docker exec '${COMPOSE_PROJECT_NAME}'_l3d /usr/local/bin/update-env'
+  NEWCOMMAND='RUNNING=$(docker container ls --all -q -f name='${COMPOSE_PROJECT_NAME}'_l3d);if [ "x$RUNNING" != "x" ];then docker exec '${COMPOSE_PROJECT_NAME}'_l3d /usr/local/bin/update-env;fi'
+  OLD_HOOK_DEFINED=$(grep "$OLDCOMMAND" .git/hooks/post-checkout)
+  NEW_HOOK_DEFINED=$(grep "$NEWCOMMAND" .git/hooks/post-checkout)
+  if [[ "x$OLD_HOOK_DEFINED" = "x" ]]; then
+    echo "$NEWCOMMAND" >> .git/hooks/post-checkout
+  elif [[ "x$NEW_HOOK_DEFINED" = "x" ]]; then
+    OLDCOMMAND="${OLDCOMMAND//\//\\/}"
+    sed -i -e "/${OLDCOMMAND}/d" .git/hooks/post-checkout
+    echo "$NEWCOMMAND" >> .git/hooks/post-checkout
   fi
 fi
 /usr/local/bin/update-env