[Fix] when originally installed without git, ensure it can be upgraded to use git.

Fixes #1212. Closes #1213.
diff --git a/install.sh b/install.sh
index b80c907..c24cec3 100755
--- a/install.sh
+++ b/install.sh
@@ -78,13 +78,29 @@
     # Cloning to $INSTALL_DIR
     echo "=> Downloading nvm from git to '$INSTALL_DIR'"
     command printf "\r=> "
-    mkdir -p "$INSTALL_DIR"
-    command git clone "$(nvm_source)" "$INSTALL_DIR" || {
-      echo >&2 "Failed to clone nvm repo. Please report this!"
-      exit 1
-    }
+    mkdir -p "${INSTALL_DIR}"
+    if [ "$(ls -A "${INSTALL_DIR}")" ]; then
+      command git init "${INSTALL_DIR}" || {
+        echo >&2 'Failed to initialize nvm repo. Please report this!'
+        exit 2
+      }
+      command git --git-dir="${INSTALL_DIR}/.git" remote add origin "$(nvm_source)" 2> /dev/null \
+        || command git --git-dir="${INSTALL_DIR}/.git" remote set-url origin "$(nvm_source)" || {
+        echo >&2 'Failed to add remote "origin" (or set the URL). Please report this!'
+        exit 2
+      }
+      command git --git-dir="${INSTALL_DIR}/.git" fetch origin --tags || {
+        echo >&2 'Failed to fetch origin with tags. Please report this!'
+        exit 2
+      }
+    else
+      command git clone "$(nvm_source)" "${INSTALL_DIR}" || {
+        echo >&2 'Failed to clone nvm repo. Please report this!'
+        exit 2
+      }
+    fi
   fi
-  command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" checkout --quiet "$(nvm_latest_version)"
+  command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" checkout -f --quiet "$(nvm_latest_version)"
   if [ ! -z "$(command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" show-ref refs/heads/master)" ]; then
     if command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch --quiet 2>/dev/null; then
       command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch --quiet -D master >/dev/null 2>&1