Pull is not possible because you have unmerged files 的解决方法

问题再现:

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云笔记
随时随地,让你拥有最新,最便捷的掌上云服务

发布了147 篇原创文章 · 获赞 169 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/weixin_44259720/article/details/103250927