问题再现:
Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>'
as appropriate to mark resolution, or use 'git commit -a'.
原因解释:
在【git pull】的过程中,如果有文件冲突,那么除了冲突的文件之外,其它的文件都会做为 staged 区的文件保存起来。
本地的 push 和 merge 会形成 MERGE-HEAD(FETCH-HEAD), HEAD(PUSH-HEAD)这样的引用。
- HEAD代表本地最近成功push后形成的引用;
- MERGE-HEAD表示成功pull后形成的引用。
解决办法:
可以通过 MERGE-HEAD 或者 HEAD 来实现类型与 svn revet 的效果。
1. 打开 Git 控制台:
项目右键 --> 【Open in Terminal】 --> 使用 Git 命令控制台。
2. 输入:git reset --hard FETCH_HEAD
- 将本地的冲突文件冲掉,不仅需要reset到MERGE-HEAD或者HEAD,还需要--hard;
- 没有后面的hard,不会冲掉本地工作区。只会冲掉stage区。
3. 输入:git pull
再提交就会成功。
更多精彩,请关注我的"今日头条号":Java云笔记
随时随地,让你拥有最新,最便捷的掌上云服务