尝试应用 git diff 时出错,“输入中没有有效补丁”

Rid*_*lon 15 git powershell git-patch

我正在创建一个 powershell 脚本,其目标是遍历多个 git 分支,保存工作更改的补丁,切换到主干分支以拉取远程提交,然后切换回工作分支并重新应用工作更改。

下面是我具体测试的方法:

git diff > test.patch
git restore .
*do main branch operation*
git apply test.patch
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试应用刚刚创建的补丁时,出现错误:

错误:输入中没有有效的补丁(允许使用“--allow-empty”)

有人看到我在这里做错了什么吗?

Git版本:2.35.2.windows.1

Powershell版本:5.1.19041.1320

pen*_*lip 27

可能 Windows 将行终止符更改为 CRLF。把它带回LF。

对于其他陷入困境的人 - 我尝试过这个,但我还必须以 UTF-8 格式重新保存补丁文件,以便 git 识别它。

  • 对我来说,CRLF 不是问题。但格式是并将其保存为 UTF-8 有帮助。 (3认同)

小智 9

我也遇到了同样的问题,不过解决了,用记事本打开补丁文件,在代码选择中选择UTF-8,然后保存,然后用git apply patch进入补丁


use*_*165 4

可能 Windows 将行终止符更改为 CRLF。把它带回LF。

  • 如果您添加_how_来实际做到这一点,那就太好了...... (7认同)