gitpowershellgit-patch

Error when trying to apply git diff, "No valid patches in input"


I'm creating a powershell script with the goal of going through several git branches, saving a patch of the working changes, switching to the trunk branch to pull remote commits, then switching back to the working branch and reapplying the working changes.

Here is the method I am testing specifically:

git diff > test.patch
git restore .
*do main branch operation*
git apply test.patch

However when I try to apply the patch that I have just created I get an error:

error: No valid patches in input (allow with "--allow-empty")

Does anyone see what I'm doing wrong here?

Git version: 2.35.2.windows.1

Powershell version: 5.1.19041.1320


Solution

  • I have the same problem as well when applying the patch. When I opened the patch, I got the patch with UTF-16 LE BOM encoding. Quite likely this was the problem.

    So instead of using

    # don't do this
    git diff > myoldpatch.patch
    

    for creating the patch of unsaved changes, using Powershell, you do this instead (thanks benf!)

    git diff | Set-Content -Encoding utf8 .\goodutf8.patch
    

    PS. tried in git 2.42