git diff 4ee42367 8c650199 > changes2.patch
git checkout newBranch
git apply changes2.patch
error: unrecognized input
当我尝试应用更改时,我会收到错误消息。我在做什么错了?
答案 0 :(得分:4)
我按照下面的说明解决了这个问题,
git checkout -b new_branch
并提交一些东西git diff master --no-color > your_patch_file.patch
git checkout master
git apply your_patch_file_name.patch
或者你可以在 Git Bash 上运行你的 git 命令,可能你不会遇到任何问题。
答案 1 :(得分:1)
默认情况下您是否启用了彩色输出?
如果git diff 4ee42367 8c650199
在您的终端上显示为彩色,则颜色代码将输出到补丁文件中
然后git apply
将失败,并显示error: unrecognized input
在这种情况下,请尝试使用git diff --no-color
答案 2 :(得分:1)
对于在 Powershell 中运行此表单的用户,here is another post 提供有关编码错误的信息及其发生原因。
如果您只是在寻找答案,您可以编辑您的 powershell 配置文件:
PS> code $profile
并添加
$PSDefaultParameterValues['Out-File:Encoding'] = 'utf8'
这可能会导致其他问题,因此使用风险自负。
如果你只想为单个实例运行它,你可以这样做
$PSDefaultParameterValues['Out-File:Encoding'] = 'utf8'
git diff > change.patch
git checkout otherbranch
git apply change.patch
答案 3 :(得分:0)
万一其他人遇到这个问题:对我来说,Powershell是元凶。在git bash中使用Anentropic的答案会产生一个“良好”(可读)的补丁。