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
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