diff --git a/CHANGELOG.md b/CHANGELOG.md
index 366679dc..ff988eca 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog
 
+## 8.1.0
+
+- Add support for the `--text` option to treat all files as text.
+
 ## 8.0.0
 
 - Add support for multiple patch files for a single package. #474
diff --git a/README.md b/README.md
index c3a910b0..7139e2d5 100644
--- a/README.md
+++ b/README.md
@@ -178,6 +178,10 @@ team.
 
   Specify the name for the directory in which to put the patch files.
 
+- `--text`
+
+  Treat all files as text files. This is useful when git detects text files as binary ones and returns empty diffs.
+
 #### Nested packages
 
 If you are trying to patch a package at, e.g.
diff --git a/package.json b/package.json
index 6d2aea18..cccdb1ab 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "patch-package",
-  "version": "8.0.0",
+  "version": "8.1.0",
   "description": "Fix broken node modules with no fuss",
   "main": "dist/index.js",
   "repository": "github:ds300/patch-package",
diff --git a/src/gitDiffArguments.test.ts b/src/gitDiffArguments.test.ts
new file mode 100644
index 00000000..c2aa25d4
--- /dev/null
+++ b/src/gitDiffArguments.test.ts
@@ -0,0 +1,20 @@
+import { createGitDiffArguments } from "./gitDiffArguments"
+
+const gitDiffTextArgument = "--text"
+
+describe("createGitDiffArguments", () => {
+
+  it("should return --text as one of arguments when enforceTextFileType is true", () => {
+
+    const enforceTextFileType = true
+
+    expect(createGitDiffArguments(enforceTextFileType)).toContain(gitDiffTextArgument)
+  })
+
+  it("shouldn't return --text as one of arguments when enforceTextFileType is false", () => {
+
+    const enforceTextFileType = false
+
+    expect(createGitDiffArguments(enforceTextFileType)).not.toContain(gitDiffTextArgument)
+  })
+})
diff --git a/src/gitDiffArguments.ts b/src/gitDiffArguments.ts
new file mode 100644
index 00000000..210849bd
--- /dev/null
+++ b/src/gitDiffArguments.ts
@@ -0,0 +1,21 @@
+import { blueBright } from "chalk"
+
+export function createGitDiffArguments(enforceTextFileType: boolean) {
+
+  const gitDiffArgs = [
+    "diff",
+    "--cached",
+    "--no-color",
+    "--ignore-space-at-eol",
+    "--no-ext-diff",
+    "--src-prefix=a/",
+    "--dst-prefix=b/",
+  ]
+
+  if (enforceTextFileType) {
+    console.log(blueBright("Treating all files as text."))
+    gitDiffArgs.push("--text")
+  }
+
+  return gitDiffArgs
+}
diff --git a/src/index.ts b/src/index.ts
index 8ee449a9..c1b3f194 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -25,6 +25,7 @@ const argv = minimist(process.argv.slice(2), {
     "error-on-warn",
     "create-issue",
     "partial",
+    "text",
     "",
   ],
   string: ["patch-dir", "append", "rebase"],
@@ -86,6 +87,7 @@ if (argv.version || argv.v) {
       appPath,
       argv["use-yarn"] ? "yarn" : null,
     )
+    const enforceTextFileType = !!argv.text;
     const createIssue = argv["create-issue"]
     packageNames.forEach((packagePathSpecifier: string) => {
       makePatch({
@@ -100,6 +102,7 @@ if (argv.version || argv.v) {
           "append" in argv
             ? { type: "append", name: argv.append || undefined }
             : { type: "overwrite_last" },
+        enforceTextFileType
       })
     })
   } else {
diff --git a/src/makePatch.ts b/src/makePatch.ts
index 4d040297..b5935a16 100644
--- a/src/makePatch.ts
+++ b/src/makePatch.ts
@@ -23,6 +23,7 @@ import { PackageManager } from "./detectPackageManager"
 import { removeIgnoredFiles } from "./filterFiles"
 import { getPackageResolution } from "./getPackageResolution"
 import { getPackageVersion } from "./getPackageVersion"
+import { createGitDiffArguments } from "./gitDiffArguments"
 import { hashFile } from "./hash"
 import {
   getPatchDetailsFromCliString,
@@ -63,6 +64,7 @@ export function makePatch({
   patchDir,
   createIssue,
   mode,
+  enforceTextFileType,
 }: {
   packagePathSpecifier: string
   appPath: string
@@ -72,6 +74,7 @@ export function makePatch({
   patchDir: string
   createIssue: boolean
   mode: { type: "overwrite_last" } | { type: "append"; name?: string }
+  enforceTextFileType: boolean
 }) {
   const packageDetails = getPatchDetailsFromCliString(packagePathSpecifier)
 
@@ -310,16 +313,9 @@ export function makePatch({
     // stage all files
     git("add", "-f", packageDetails.path)
 
+    const gitDiffArgs = createGitDiffArguments(enforceTextFileType)
     // get diff of changes
-    const diffResult = git(
-      "diff",
-      "--cached",
-      "--no-color",
-      "--ignore-space-at-eol",
-      "--no-ext-diff",
-      "--src-prefix=a/",
-      "--dst-prefix=b/",
-    )
+    const diffResult = git(...gitDiffArgs)
 
     if (diffResult.stdout.length === 0) {
       console.log(