问题:
使用 git checkout 单个文件
放弃某个文件的工作区的修改时报 error: path 'xxx' is unmerged
错误。
发生场景:
在合并两个分支时, 如果某个文件在两个分支同时修改了, 则git 对标识这个文件为 需要合并(“Requires merge resolution”)
的状态。有可能是两类文件:
<<<<
和 >>>>
需要手动处理的标识。对于源码文件,处理一半或是什么原因需要 使用git checkout
放弃修改, 会到merge 前端的状态; 对于二进制文件,因为无法merge, 也希望回到merge前的状态。 但是在使用 git checkout 单个文件
命令时就出现这个错误了。
原因及解析:
Requires merge resolution
这个状态是不能直接放弃修改的, 需要回到 Modified, not staged
状态才可以。
git reset
用于撤销修改,reset 有三种模式:mixed,soft 和hard,默认的是mixed,也即是撤销本地库和暂存区的修改,但保留工