diff --git a/git/diff.py b/git/diff.py
index 48b0e0d62..c4424592f 100644
--- a/git/diff.py
+++ b/git/diff.py
@@ -574,6 +574,9 @@ def _handle_diff_line(lines_bytes: bytes, repo: "Repo", index: DiffIndex) -> Non
         _, _, lines = lines.partition(":")
 
         for line in lines.split("\x00:"):
+            if not line:
+                # The line data is empty, skip
+                continue
             meta, _, path = line.partition("\x00")
             path = path.rstrip("\x00")
             a_blob_id: Optional[str]
diff --git a/test/test_diff.py b/test/test_diff.py
index dcf10018b..7065f0635 100644
--- a/test/test_diff.py
+++ b/test/test_diff.py
@@ -240,6 +240,12 @@ def test_diff_file_with_colon(self):
         output = fixture("diff_file_with_colon")
         res = []
         Diff._handle_diff_line(output, None, res)
+        self.assertEqual(len(res), 3)
+
+    def test_empty_diff(self):
+        res = []
+        Diff._handle_diff_line(b"", None, res)
+        self.assertEqual(res, [])
 
     def test_diff_initial_commit(self):
         initial_commit = self.rorepo.commit("33ebe7acec14b25c5f84f35a664803fcab2f7781")