diff --git a/backup_am_github_repos_and_issues.sh b/backup_am_github_repos_and_issues.sh
index 87b8c26a3051c6674b9a20af3c92b6830050886a..b2fbbfe177fd7b1600897fc21444358167e30229 100644
--- a/backup_am_github_repos_and_issues.sh
+++ b/backup_am_github_repos_and_issues.sh
@@ -72,11 +72,21 @@ until [ ${page} -gt ${maxpage} ]; do
         echo "############"
         if [[ -d "./${repo_name}" ]]; then
           echo "update repo: ${repo_name}"
-          cmd="git -C ./${repo_name} pull --recurse-submodules" # update local repo
+          backup_date="$( date +%d-%m-%Y_%k-%M-%S )"
+          cp  -r ./${repo_name} ./${repo_name}.backup_${backup_date}
+          git -C ./${repo_name} fetch
+          if git -C ./${repo_name} merge; then
+            rm -rf ./${repo_name}.backup_${backup_date}
+          else
+            rm -rf ./${repo_name}
+            echo "clone repo : ${repo_name}"
+            cmd="git clone --recurse-submodules ${repo_url}" # create local repo
+          fi
+          # cmd="git -C ./${repo_name} pull --recurse-submodules" # update local repo
         else
           echo "clone repo : ${repo_name}"
           cmd="git clone --recurse-submodules ${repo_url}" # create local repo
-        fi
+	fi
         ${cmd} || fails+=("${cmd}")   # remember fails
       fi
     done < <(curl -sS "${orgs_base_url}${org}/repos?page=${page}&per_page=${perpage}" | grep -e 'clone_url.*' | cut -d \" -f 4 | xargs -L1 echo) # HINT: use process substitution to remember $fails