diff --git a/README.md b/README.md
index bb12a0ca..c3a910b0 100644
--- a/README.md
+++ b/README.md
@@ -107,7 +107,8 @@ Then, update your hash key to include a checksum of that file:
 ```yaml
 - restore_cache:
     key:
-      app-node_modules-v1-{{ checksum "yarn.lock" }}-{{ checksum "patches.hash" }}
+      app-node_modules-v1-{{ checksum "yarn.lock" }}-{{ checksum "patches.hash"
+      }}
 ```
 
 As well as the save_cache
@@ -115,7 +116,8 @@ As well as the save_cache
 ```yaml
 - save_cache:
     key:
-      app-node_modules-v1-{{ checksum "yarn.lock" }}-{{ checksum "patches.hash" }}
+      app-node_modules-v1-{{ checksum "yarn.lock" }}-{{ checksum "patches.hash"
+      }}
     paths:
       - ./node_modules
 ```
@@ -342,6 +344,21 @@ If you deleted one of the patch files other than the last one, you don't need to
 update the sequence numbers in the successive patch file names, but you might
 want to do so to keep things tidy.
 
+#### Partially applying a broken patch file
+
+Normally patch application is atomic per patch file. i.e. if a patch file
+contains an error anywhere then none of the changes in the patch file will be
+applied and saved to disk.
+
+This can be problematic if you have a patch with many changes and you want to
+keep some of them and update others.
+
+In this case you can use the `--partial` option. Patch-package will apply as
+many of the changes as it can and then leave it to you to fix the rest.
+
+Any errors encountered will be written to a file `./patch-package-errors.log` to
+help you keep track of what needs fixing.
+
 ## Benefits of patching over forking
 
 - Sometimes forks need extra build steps, e.g. with react-native for Android.
diff --git a/integration-tests/partial-apply/__snapshots__/partial-apply.test.ts.snap b/integration-tests/partial-apply/__snapshots__/partial-apply.test.ts.snap
new file mode 100644
index 00000000..1bc70f2f
--- /dev/null
+++ b/integration-tests/partial-apply/__snapshots__/partial-apply.test.ts.snap
@@ -0,0 +1,50 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Test partial-apply: 00: patch-package fails when one of the patches in the sequence fails 1`] = `
+"SNAPSHOT: patch-package fails when one of the patches in the sequence fails
+patch-package 0.0.0
+Applying patches...
+left-pad@1.3.0 (1 hello) ✔
+
+⛔ ERROR
+
+Failed to apply patch file left-pad+1.3.0+002+world.patch.
+
+If this patch file is no longer useful, delete it and run
+
+  patch-package
+
+To partially apply the patch (if possible) and output a log of errors to fix, run
+
+  patch-package --partial
+
+After which you should make any required changes inside node_modules/left-pad, and finally run
+
+  patch-package left-pad
+
+to update the patch file.
+
+END SNAPSHOT"
+`;
+
+exports[`Test partial-apply: 01: patch-package --partial saves a log 1`] = `
+"SNAPSHOT: patch-package --partial saves a log
+patch-package 0.0.0
+Applying patches...
+left-pad@1.3.0 (1 hello) ✔
+Saving errors to ./patch-package-errors.log
+patch-package-errors.log
+Cannot apply hunk 0 for file node_modules/left-pad/index.js
+\`\`\`diff
+@@ -3,7 +3,7 @@
+      * and/or modify it under the terms of the Do What The Fuck You Want
+      * To Public License, Version 2, as published by Sam Hocevar. See
+      * http://www.wtfpl.net/ for more details. */
+-'use oops';
++'use world';
+ module.exports = leftPad;
+ 
+ var cache = [
+\`\`\`
+END SNAPSHOT"
+`;
diff --git a/integration-tests/partial-apply/package-lock.json b/integration-tests/partial-apply/package-lock.json
new file mode 100644
index 00000000..07ac1d9c
--- /dev/null
+++ b/integration-tests/partial-apply/package-lock.json
@@ -0,0 +1,22 @@
+{
+  "name": "partial-apply",
+  "version": "1.0.0",
+  "lockfileVersion": 3,
+  "requires": true,
+  "packages": {
+    "": {
+      "name": "partial-apply",
+      "version": "1.0.0",
+      "license": "ISC",
+      "dependencies": {
+        "left-pad": "^1.3.0"
+      }
+    },
+    "node_modules/left-pad": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz",
+      "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==",
+      "deprecated": "use String.prototype.padStart()"
+    }
+  }
+}
diff --git a/integration-tests/partial-apply/package.json b/integration-tests/partial-apply/package.json
new file mode 100644
index 00000000..3669abc8
--- /dev/null
+++ b/integration-tests/partial-apply/package.json
@@ -0,0 +1,11 @@
+{
+  "name": "partial-apply",
+  "version": "1.0.0",
+  "description": "integration test for patch-package",
+  "main": "index.js",
+  "author": "",
+  "license": "ISC",
+  "dependencies": {
+    "left-pad": "^1.3.0"
+  }
+}
diff --git a/integration-tests/partial-apply/partial-apply.sh b/integration-tests/partial-apply/partial-apply.sh
new file mode 100755
index 00000000..e9d5813f
--- /dev/null
+++ b/integration-tests/partial-apply/partial-apply.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+# make sure errors stop the script
+set -e
+
+npm install
+
+echo "add patch-package"
+npm add $1
+
+function patch-package {
+  ./node_modules/.bin/patch-package "$@"
+}
+
+echo "SNAPSHOT: patch-package fails when one of the patches in the sequence fails"
+if patch-package
+then
+  exit 1
+fi
+echo "END SNAPSHOT"
+
+
+echo "SNAPSHOT: patch-package --partial saves a log"
+patch-package --partial
+echo 'patch-package-errors.log'
+cat patch-package-errors.log
+echo "END SNAPSHOT"
diff --git a/integration-tests/partial-apply/partial-apply.test.ts b/integration-tests/partial-apply/partial-apply.test.ts
new file mode 100644
index 00000000..e11f3275
--- /dev/null
+++ b/integration-tests/partial-apply/partial-apply.test.ts
@@ -0,0 +1,5 @@
+import { runIntegrationTest } from "../runIntegrationTest"
+runIntegrationTest({
+  projectName: "partial-apply",
+  shouldProduceSnapshots: true,
+})
diff --git a/integration-tests/partial-apply/patches/left-pad+1.3.0+001+hello.patch b/integration-tests/partial-apply/patches/left-pad+1.3.0+001+hello.patch
new file mode 100644
index 00000000..a77d5b29
--- /dev/null
+++ b/integration-tests/partial-apply/patches/left-pad+1.3.0+001+hello.patch
@@ -0,0 +1,13 @@
+diff --git a/node_modules/left-pad/index.js b/node_modules/left-pad/index.js
+index e90aec3..1a2ec5f 100644
+--- a/node_modules/left-pad/index.js
++++ b/node_modules/left-pad/index.js
+@@ -3,7 +3,7 @@
+      * and/or modify it under the terms of the Do What The Fuck You Want
+      * To Public License, Version 2, as published by Sam Hocevar. See
+      * http://www.wtfpl.net/ for more details. */
+-'use strict';
++'use hello';
+ module.exports = leftPad;
+ 
+ var cache = [
diff --git a/integration-tests/partial-apply/patches/left-pad+1.3.0+002+world.patch b/integration-tests/partial-apply/patches/left-pad+1.3.0+002+world.patch
new file mode 100644
index 00000000..ec3fcb32
--- /dev/null
+++ b/integration-tests/partial-apply/patches/left-pad+1.3.0+002+world.patch
@@ -0,0 +1,13 @@
+diff --git a/node_modules/left-pad/index.js b/node_modules/left-pad/index.js
+index 1a2ec5f..5aa41be 100644
+--- a/node_modules/left-pad/index.js
++++ b/node_modules/left-pad/index.js
+@@ -3,7 +3,7 @@
+      * and/or modify it under the terms of the Do What The Fuck You Want
+      * To Public License, Version 2, as published by Sam Hocevar. See
+      * http://www.wtfpl.net/ for more details. */
+-'use oops';
++'use world';
+ module.exports = leftPad;
+ 
+ var cache = [
diff --git a/integration-tests/partial-apply/patches/left-pad+1.3.0+003+goodbye.patch b/integration-tests/partial-apply/patches/left-pad+1.3.0+003+goodbye.patch
new file mode 100644
index 00000000..e7504c57
--- /dev/null
+++ b/integration-tests/partial-apply/patches/left-pad+1.3.0+003+goodbye.patch
@@ -0,0 +1,13 @@
+diff --git a/node_modules/left-pad/index.js b/node_modules/left-pad/index.js
+index 5aa41be..5ee751b 100644
+--- a/node_modules/left-pad/index.js
++++ b/node_modules/left-pad/index.js
+@@ -3,7 +3,7 @@
+      * and/or modify it under the terms of the Do What The Fuck You Want
+      * To Public License, Version 2, as published by Sam Hocevar. See
+      * http://www.wtfpl.net/ for more details. */
+-'use world';
++'goodbye world';
+ module.exports = leftPad;
+ 
+ var cache = [
diff --git a/property-based-tests/executeTestCase.ts b/property-based-tests/executeTestCase.ts
index 5a5ad6e6..315f0a66 100644
--- a/property-based-tests/executeTestCase.ts
+++ b/property-based-tests/executeTestCase.ts
@@ -132,7 +132,7 @@ export function executeTestCase(testCase: TestCase) {
     fs.setWorkingFiles({ ...testCase.cleanFiles })
     reportingFailures(() => {
       const effects = parsePatchFile(patchFileContents)
-      executeEffects(effects, { dryRun: false })
+      executeEffects(effects, { dryRun: false, bestEffort: false })
       expect(fs.getWorkingFiles()).toEqual(testCase.modifiedFiles)
     })
   })
@@ -141,7 +141,7 @@ export function executeTestCase(testCase: TestCase) {
     fs.setWorkingFiles({ ...testCase.modifiedFiles })
     reportingFailures(() => {
       const effects = reversePatch(parsePatchFile(patchFileContents))
-      executeEffects(effects, { dryRun: false })
+      executeEffects(effects, { dryRun: false, bestEffort: false })
       expect(fs.getWorkingFiles()).toEqual(testCase.cleanFiles)
     })
   })
diff --git a/src/applyPatches.ts b/src/applyPatches.ts
index 1fbbb652..1a50d094 100644
--- a/src/applyPatches.ts
+++ b/src/applyPatches.ts
@@ -1,4 +1,5 @@
 import chalk from "chalk"
+import { writeFileSync } from "fs"
 import { existsSync } from "fs-extra"
 import { posix } from "path"
 import semver from "semver"
@@ -96,12 +97,14 @@ export function applyPatchesForApp({
   patchDir,
   shouldExitWithError,
   shouldExitWithWarning,
+  bestEffort,
 }: {
   appPath: string
   reverse: boolean
   patchDir: string
   shouldExitWithError: boolean
   shouldExitWithWarning: boolean
+  bestEffort: boolean
 }): void {
   const patchesDirectory = join(appPath, patchDir)
   const groupedPatches = getGroupedPatches(patchesDirectory)
@@ -124,6 +127,7 @@ export function applyPatchesForApp({
       reverse,
       warnings,
       errors,
+      bestEffort,
     })
   }
 
@@ -165,6 +169,7 @@ export function applyPatchesForPackage({
   reverse,
   warnings,
   errors,
+  bestEffort,
 }: {
   patches: PatchedPackageDetails[]
   appPath: string
@@ -172,6 +177,7 @@ export function applyPatchesForPackage({
   reverse: boolean
   warnings: string[]
   errors: string[]
+  bestEffort: boolean
 }) {
   const pathSpecifier = patches[0].pathSpecifier
   const state = patches.length > 1 ? getPatchApplicationState(patches[0]) : null
@@ -257,6 +263,7 @@ export function applyPatchesForPackage({
           patchDetails,
           patchDir,
           cwd: process.cwd(),
+          bestEffort,
         })
       ) {
         appliedPatches.push(patchDetails)
@@ -397,12 +404,14 @@ export function applyPatch({
   patchDetails,
   patchDir,
   cwd,
+  bestEffort,
 }: {
   patchFilePath: string
   reverse: boolean
   patchDetails: PackageDetails
   patchDir: string
   cwd: string
+  bestEffort: boolean
 }): boolean {
   const patch = readPatch({
     patchFilePath,
@@ -412,14 +421,26 @@ export function applyPatch({
 
   const forward = reverse ? reversePatch(patch) : patch
   try {
-    executeEffects(forward, { dryRun: true, cwd })
-    executeEffects(forward, { dryRun: false, cwd })
+    if (!bestEffort) {
+      executeEffects(forward, { dryRun: true, cwd, bestEffort: false })
+    }
+    const errors: string[] | undefined = bestEffort ? [] : undefined
+    executeEffects(forward, { dryRun: false, cwd, bestEffort, errors })
+    if (errors?.length) {
+      console.log(
+        "Saving errors to",
+        chalk.cyan.bold("./patch-package-errors.log"),
+      )
+      writeFileSync("patch-package-errors.log", errors.join("\n\n"))
+      process.exit(0)
+    }
   } catch (e) {
     try {
       const backward = reverse ? patch : reversePatch(patch)
       executeEffects(backward, {
         dryRun: true,
         cwd,
+        bestEffort: false,
       })
     } catch (e) {
       return false
diff --git a/src/index.ts b/src/index.ts
index 43ac7c9d..8ee449a9 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -24,6 +24,7 @@ const argv = minimist(process.argv.slice(2), {
     "error-on-fail",
     "error-on-warn",
     "create-issue",
+    "partial",
     "",
   ],
   string: ["patch-dir", "append", "rebase"],
@@ -120,6 +121,7 @@ if (argv.version || argv.v) {
       patchDir,
       shouldExitWithError,
       shouldExitWithWarning,
+      bestEffort: argv.partial,
     })
   }
 }
diff --git a/src/makePatch.ts b/src/makePatch.ts
index f6bf2ba8..4d040297 100644
--- a/src/makePatch.ts
+++ b/src/makePatch.ts
@@ -214,7 +214,7 @@ export function makePatch({
         })
       } catch (e) {
         // try again while ignoring scripts in case the script depends on
-        // an implicit context which we havn't reproduced
+        // an implicit context which we haven't reproduced
         spawnSafeSync(
           `yarn`,
           ["install", "--ignore-engines", "--ignore-scripts"],
@@ -238,7 +238,7 @@ export function makePatch({
         })
       } catch (e) {
         // try again while ignoring scripts in case the script depends on
-        // an implicit context which we havn't reproduced
+        // an implicit context which we haven't reproduced
         spawnSafeSync(`npm`, ["i", "--ignore-scripts", "--force"], {
           cwd: tmpRepoNpmRoot,
           stdio: "ignore",
@@ -278,6 +278,7 @@ export function makePatch({
           patchFilePath: join(appPath, patchDir, patchDetails.patchFilename),
           reverse: false,
           cwd: tmpRepo.name,
+          bestEffort: false,
         })
       ) {
         // TODO: add better error message once --rebase is implemented
@@ -498,6 +499,7 @@ export function makePatch({
               patchFilePath,
               reverse: false,
               cwd: process.cwd(),
+              bestEffort: false,
             })
           ) {
             didFailWhileFinishingRebase = true
@@ -587,10 +589,14 @@ Failed to apply patch file ${chalk.bold(patchDetails.patchFilename)}.
 If this patch file is no longer useful, delete it and run
 
   ${chalk.bold(`patch-package`)}
-  
-Otherwise you should open ${
+
+To partially apply the patch (if possible) and output a log of errors to fix, run
+
+  ${chalk.bold(`patch-package --partial`)}
+
+After which you should make any required changes inside ${
     patchDetails.path
-  }, manually apply the changes from the patch file, and run
+  }, and finally run
 
   ${chalk.bold(`patch-package ${patchDetails.pathSpecifier}`)}
 
diff --git a/src/patch/apply.ts b/src/patch/apply.ts
index ef5d13a9..afb6c67a 100644
--- a/src/patch/apply.ts
+++ b/src/patch/apply.ts
@@ -5,7 +5,12 @@ import { assertNever } from "../assertNever"
 
 export const executeEffects = (
   effects: ParsedPatchFile,
-  { dryRun, cwd }: { dryRun: boolean; cwd?: string },
+  {
+    dryRun,
+    bestEffort,
+    errors,
+    cwd,
+  }: { dryRun: boolean; cwd?: string; errors?: string[]; bestEffort: boolean },
 ) => {
   const inCwd = (path: string) => (cwd ? join(cwd, path) : path)
   const humanReadable = (path: string) => relative(process.cwd(), inCwd(path))
@@ -21,7 +26,15 @@ export const executeEffects = (
           }
         } else {
           // TODO: integrity checks
-          fs.unlinkSync(inCwd(eff.path))
+          try {
+            fs.unlinkSync(inCwd(eff.path))
+          } catch (e) {
+            if (bestEffort) {
+              errors?.push(`Failed to delete file ${eff.path}`)
+            } else {
+              throw e
+            }
+          }
         }
         break
       case "rename":
@@ -34,7 +47,17 @@ export const executeEffects = (
             )
           }
         } else {
-          fs.moveSync(inCwd(eff.fromPath), inCwd(eff.toPath))
+          try {
+            fs.moveSync(inCwd(eff.fromPath), inCwd(eff.toPath))
+          } catch (e) {
+            if (bestEffort) {
+              errors?.push(
+                `Failed to rename file ${eff.fromPath} to ${eff.toPath}`,
+              )
+            } else {
+              throw e
+            }
+          }
         }
         break
       case "file creation":
@@ -52,12 +75,20 @@ export const executeEffects = (
               (eff.hunk.parts[0].noNewlineAtEndOfFile ? "" : "\n")
             : ""
           const path = inCwd(eff.path)
-          fs.ensureDirSync(dirname(path))
-          fs.writeFileSync(path, fileContents, { mode: eff.mode })
+          try {
+            fs.ensureDirSync(dirname(path))
+            fs.writeFileSync(path, fileContents, { mode: eff.mode })
+          } catch (e) {
+            if (bestEffort) {
+              errors?.push(`Failed to create new file ${eff.path}`)
+            } else {
+              throw e
+            }
+          }
         }
         break
       case "patch":
-        applyPatch(eff, { dryRun, cwd })
+        applyPatch(eff, { dryRun, cwd, bestEffort, errors })
         break
       case "mode change":
         const currentMode = fs.statSync(inCwd(eff.path)).mode
@@ -112,7 +143,12 @@ function linesAreEqual(a: string, b: string) {
 
 function applyPatch(
   { hunks, path }: FilePatch,
-  { dryRun, cwd }: { dryRun: boolean; cwd?: string },
+  {
+    dryRun,
+    cwd,
+    bestEffort,
+    errors,
+  }: { dryRun: boolean; cwd?: string; bestEffort: boolean; errors?: string[] },
 ): void {
   path = cwd ? resolve(cwd, path) : path
   // modifying the file in place
@@ -121,7 +157,7 @@ function applyPatch(
 
   const fileLines: string[] = fileContents.split(/\n/)
 
-  const result: Modificaiton[][] = []
+  const result: Modification[][] = []
 
   for (const hunk of hunks) {
     let fuzzingOffset = 0
@@ -136,12 +172,18 @@ function applyPatch(
         fuzzingOffset < 0 ? fuzzingOffset * -1 : fuzzingOffset * -1 - 1
 
       if (Math.abs(fuzzingOffset) > 20) {
-        throw new Error(
-          `Cant apply hunk ${hunks.indexOf(hunk)} for file ${relative(
-            process.cwd(),
-            path,
-          )}`,
-        )
+        const message = `Cannot apply hunk ${hunks.indexOf(
+          hunk,
+        )} for file ${relative(process.cwd(), path)}\n\`\`\`diff\n${
+          hunk.source
+        }\n\`\`\`\n`
+
+        if (bestEffort) {
+          errors?.push(message)
+          break
+        } else {
+          throw new Error(message)
+        }
       }
     }
   }
@@ -176,7 +218,15 @@ function applyPatch(
     }
   }
 
-  fs.writeFileSync(path, fileLines.join("\n"), { mode })
+  try {
+    fs.writeFileSync(path, fileLines.join("\n"), { mode })
+  } catch (e) {
+    if (bestEffort) {
+      errors?.push(`Failed to write file ${path}`)
+    } else {
+      throw e
+    }
+  }
 }
 
 interface Push {
@@ -193,14 +243,14 @@ interface Splice {
   linesToInsert: string[]
 }
 
-type Modificaiton = Push | Pop | Splice
+type Modification = Push | Pop | Splice
 
 function evaluateHunk(
   hunk: Hunk,
   fileLines: string[],
   fuzzingOffset: number,
-): Modificaiton[] | null {
-  const result: Modificaiton[] = []
+): Modification[] | null {
+  const result: Modification[] = []
   let contextIndex = hunk.header.original.start - 1 + fuzzingOffset
   // do bounds checks for index
   if (contextIndex < 0) {
diff --git a/src/patch/parse.ts b/src/patch/parse.ts
index 8505d754..d0dfa35e 100644
--- a/src/patch/parse.ts
+++ b/src/patch/parse.ts
@@ -109,6 +109,7 @@ interface FileDeets {
 export interface Hunk {
   header: HunkHeader
   parts: PatchMutationPart[]
+  source: string
 }
 
 const emptyFilePatch = (): FileDeets => ({
@@ -130,6 +131,7 @@ const emptyFilePatch = (): FileDeets => ({
 const emptyHunk = (headerLine: string): Hunk => ({
   header: parseHunkHeaderLine(headerLine),
   parts: [],
+  source: "",
 })
 
 const hunkLinetypes: {
@@ -154,20 +156,22 @@ function parsePatchLines(
   let state: State = "parsing header"
   let currentHunk: Hunk | null = null
   let currentHunkMutationPart: PatchMutationPart | null = null
+  let hunkStartLineIndex = 0
 
-  function commitHunk() {
+  function commitHunk(i: number) {
     if (currentHunk) {
       if (currentHunkMutationPart) {
         currentHunk.parts.push(currentHunkMutationPart)
         currentHunkMutationPart = null
       }
+      currentHunk.source = lines.slice(hunkStartLineIndex, i).join("\n")
       currentFilePatch.hunks!.push(currentHunk)
       currentHunk = null
     }
   }
 
-  function commitFilePatch() {
-    commitHunk()
+  function commitFilePatch(i: number) {
+    commitHunk(i)
     result.push(currentFilePatch)
     currentFilePatch = emptyFilePatch()
   }
@@ -177,12 +181,13 @@ function parsePatchLines(
 
     if (state === "parsing header") {
       if (line.startsWith("@@")) {
+        hunkStartLineIndex = i
         state = "parsing hunks"
         currentFilePatch.hunks = []
         i--
       } else if (line.startsWith("diff --git ")) {
         if (currentFilePatch && currentFilePatch.diffLineFromPath) {
-          commitFilePatch()
+          commitFilePatch(i)
         }
         const match = line.match(/^diff --git a\/(.*?) b\/(.*?)\s*$/)
         if (!match) {
@@ -221,7 +226,7 @@ function parsePatchLines(
     } else {
       if (supportLegacyDiffs && line.startsWith("--- a/")) {
         state = "parsing header"
-        commitFilePatch()
+        commitFilePatch(i)
         i--
         continue
       }
@@ -229,13 +234,13 @@ function parsePatchLines(
       const lineType = hunkLinetypes[line[0]] || null
       switch (lineType) {
         case "header":
-          commitHunk()
+          commitHunk(i)
           currentHunk = emptyHunk(line)
           break
         case null:
           // unrecognized, bail out
           state = "parsing header"
-          commitFilePatch()
+          commitFilePatch(i)
           i--
           break
         case "pragma":
@@ -280,7 +285,7 @@ function parsePatchLines(
     }
   }
 
-  commitFilePatch()
+  commitFilePatch(lines.length)
 
   for (const { hunks } of result) {
     if (hunks) {
diff --git a/src/patch/reverse.ts b/src/patch/reverse.ts
index bbc35f20..45c1a6f6 100644
--- a/src/patch/reverse.ts
+++ b/src/patch/reverse.ts
@@ -51,6 +51,7 @@ function reverseHunk(hunk: Hunk): Hunk {
   const result: Hunk = {
     header,
     parts,
+    source: hunk.source,
   }
 
   verifyHunkIntegrity(result)
diff --git a/src/rebase.ts b/src/rebase.ts
index 75ae56b7..d8f0ba9c 100644
--- a/src/rebase.ts
+++ b/src/rebase.ts
@@ -209,6 +209,7 @@ function unApplyPatches({
         patchDetails: patch,
         patchDir,
         cwd: process.cwd(),
+        bestEffort: false,
       })
     ) {
       console.log(