diff --git a/dist/index.js b/dist/index.js
index 0a33ea1..2336eb0 100644
--- a/dist/index.js
+++ b/dist/index.js
@@ -9387,8 +9387,10 @@ function prepareExistingDirectory(git, repositoryPath, repositoryUrl, clean, ref
             remove = true;
         }
         // Fetch URL does not match
-        else if (!fsHelper.directoryExistsSync(path.join(repositoryPath, '.git')) ||
-            repositoryUrl !== (yield git.tryGetFetchUrl())) {
+        else if (!fsHelper.directoryExistsSync(path.join(repositoryPath, '.git'))) {
+            remove = clean;
+        }
+        else if (repositoryUrl !== (yield git.tryGetFetchUrl())) {
             remove = true;
         }
         else {
diff --git a/src/git-directory-helper.ts b/src/git-directory-helper.ts
index 2979e97..61110f8 100644
--- a/src/git-directory-helper.ts
+++ b/src/git-directory-helper.ts
@@ -24,10 +24,10 @@ export async function prepareExistingDirectory(
     remove = true
   }
   // Fetch URL does not match
-  else if (
-    !fsHelper.directoryExistsSync(path.join(repositoryPath, '.git')) ||
-    repositoryUrl !== (await git.tryGetFetchUrl())
-  ) {
+  else if (!fsHelper.directoryExistsSync(path.join(repositoryPath, '.git'))) {
+    remove = clean
+  }
+  else if (repositoryUrl !== (await git.tryGetFetchUrl())) {
     remove = true
   } else {
     // Delete any index.lock and shallow.lock left by a previously canceled run or crashed git process