问题:
使用 git checkout 单个文件
放弃某个文件的工作区的修改时报 error: path 'xxx' is unmerged
错误。
发生场景:
在合并两个分支时, 如果某个文件在两个分支同时修改了, 则git 对标识这个文件为 需要合并(“Requires merge resolution”)
的状态。有可能是两类文件:
- 文本源码文件,git 会自动merge, 并且会自动添加类似
<<<<
和>>>>
需要手动处理的标识。 - 二进制文件, git 不会自动merge, 但是状态和文本文件是一样的。
对于源码文件,处理一半或是什么原因需要 使用git checkout
放弃修改, 会到merge 前端的状态; 对于二进制文件,因为无法merge, 也希望回到merge前的状态。 但是在使用 git checkout 单个文件
命令时就出现这个错误了。
原因及解析:
Requires merge resolution
这个状态是不能直接放弃修