diff --git a/dist/index.js b/dist/index.js
index 0ea446b..0306d5d 100644
--- a/dist/index.js
+++ b/dist/index.js
@@ -4978,8 +4978,11 @@ function getSource(settings) {
         // Try prepare existing directory, otherwise recreate
         if (isExisting &&
             !(yield tryPrepareExistingDirectory(git, settings.repositoryPath, repositoryUrl, settings.clean))) {
-            yield io.rmRF(settings.repositoryPath);
-            yield io.mkdirP(settings.repositoryPath);
+            // Delete the contents of the directory. Don't delete the directory itself
+            // since it may be the current working directory.
+            for (const file of yield fs.promises.readdir(settings.repositoryPath)) {
+                yield io.rmRF(settings.repositoryPath);
+            }
         }
         // Initialize the repository
         if (!fsHelper.directoryExistsSync(path.join(settings.repositoryPath, '.git'))) {
diff --git a/src/git-source-provider.ts b/src/git-source-provider.ts
index 0752100..432d93c 100644
--- a/src/git-source-provider.ts
+++ b/src/git-source-provider.ts
@@ -59,8 +59,11 @@ export async function getSource(settings: ISourceSettings): Promise<void> {
       settings.clean
     ))
   ) {
-    await io.rmRF(settings.repositoryPath)
-    await io.mkdirP(settings.repositoryPath)
+    // Delete the contents of the directory. Don't delete the directory itself
+    // since it may be the current working directory.
+    for (const file of await fs.promises.readdir(settings.repositoryPath)) {
+      await io.rmRF(settings.repositoryPath)
+    }
   }
 
   // Initialize the repository