Git应用错误:无法识别的输入
当我尝试应用更改时,我将得到错误。我做错了什么?默认情况下是否启用了彩色输出 如果Git应用错误:无法识别的输入,git,Git,当我尝试应用更改时,我将得到错误。我做错了什么?默认情况下是否启用了彩色输出 如果git diff 4ee42367 8c650199在终端中显示彩色,则彩色代码将输出到补丁文件 然后,git apply将失败,出现错误:无法识别的输入 在本例中,请尝试使用git diff--no color以防其他人有此问题:对我来说,Powershell是罪魁祸首。在git bash中使用Anentropic的答案得到了一个“良好”(可读)的补丁。我按照下面的说明解决了这个问题 git checkout-b
git diff 4ee42367 8c650199
在终端中显示彩色,则彩色代码将输出到补丁文件
然后,git apply
将失败,出现错误:无法识别的输入
在本例中,请尝试使用git diff--no color以防其他人有此问题:对我来说,Powershell是罪魁祸首。在git bash中使用Anentropic的答案得到了一个“良好”(可读)的补丁。我按照下面的说明解决了这个问题
git checkout-b新建分支机构
并提交一些内容git diff master--无颜色>您的补丁文件。补丁
- 编码>转换为UTF-8
- 编辑>下线转换>Unix(LF)
- 保存文件
git签出主机
git应用您的\u补丁\u文件\u名称。补丁
或者,您可以在git Bash上运行git命令,可能不会遇到任何问题。对于在Powershell中运行此表单的用户,请提供有关编码错误的信息以及发生此错误的原因 如果您只是在寻找答案,您可以编辑powershell配置文件:
PS>code$profile
加
$PSDefaultParameterValues['Out-File:Encoding']='utf8'
这可能会导致其他问题,因此使用风险自负
如果您只想为单个实例运行它,您可以这样做
git diff 4ee42367 8c650199 > changes2.patch
git checkout newBranch
git apply changes2.patch
error: unrecognized input
你能分享
变更2.patch
的内容吗?我无法重现这种行为,但我想马上使用--full index
和--binary
选项进行git diff
可能会有所帮助。我假设这些散列要么是提交ID,要么是适当的树ID;我的猜测是,你只是有一些内容弄乱了一个基本的差异(就能够创建一个适用的补丁而言);但是我试过的所有组合都没有出现这种确切的症状(至少在我的git版本上),所以我不确定。你这个男人!您为我指明了修复lerna
中错误的正确方向。谢谢,您为我节省了很多麻烦和浪费的时间:)显然,Powershell以UTF-16生成输出,get无法使用。以下是有关如何在Powershell中缓解此问题的链接:。简单的修复方法是首先运行$PSDefaultParameterValues['*:Encoding']='utf8'
。
$PSDefaultParameterValues['Out-File:Encoding'] = 'utf8'
git diff > change.patch
git checkout otherbranch
git apply change.patch