Can‘t checkout because of unmerged files You have to resolve all merge conflicts bef

切换分支checkout 或者git pull代码的时候报错:

Can't checkout because of unmerged files
                You have to resolve all merge conflicts before checkout.
                After resolving conflicts you also probably would want to commit your files to the current branch.
 

Git Pull Failed
                Pulling is not possible because you have unmerged files.
                hint: Fix them up in the work tree, and then use 'git add/rm '
                hint: as appropriate to mark resolution and make a commit.
                Exiting because of an unresolved conflict.

原因:

应该是因为local文件冲突了

解决:

1.pull会使用git merge导致冲突,需要将冲突的文件resolve掉 git add -u, git commit之后才能成功pull.

2.如果想放弃本地的文件修改,可以使用git reset --hard FETCH_HEAD,FETCH_HEAD表示上一次成功git pull之后形成的commit点。然后git pull.
注意:

git merge会形成MERGE-HEAD(FETCH-HEAD) 。git push会形成HEAD这样的引用。HEAD代表本地最近成功push后形成的引用。

就我的经验,有时候会莫名其妙地出现这种状况,而且Untracked files 还特别多(实际上自己可能只改了一两个文件),所以只好先保存好自己确定做出的local的修改,然后用git reset --hard FETCH_HEAD回到上次成功pull之后的点,然后再pull就没有问题了

你可能感兴趣的:(git)