在使用Git pull命令将远程代码拉取到本地的时候,出现错误,没法拉取。错误以下:java
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
实际上,git pull命令是将git fetch和git merge两个命令合并起来的一个“综合”命令。app
它的做用是:将远程的代码和更新,拉取到本地而且更新本地的代码。其中的一个弊端是,你的本地工做目录在未经确认的状况下就会被远程分支更新,这里咱们暂且不提。fetch
正是git merge命令致使出现了上边使用git pull出现的问题。因此这就须要将本地与远程的代码之间的冲突解决掉,才能够进行正常的git pull。下面介绍2个方面的办法:code
(1)若是想保留本地的修改,使用下面的命令,将文件add,而后commit。开发
git add -u git commit -m "描述" git pull
(2)想保留本地的修改,可是还不想新加一次commit,可使用git stash命令。it
git stash 可用来暂存当前正在进行的工做, 好比想pull 最新代码, 又不想加新commit, 或者另一种状况,为了fix 一个紧急的bug, 先stash, 使返回到本身上一个commit, 改完bug以后再stash pop, 继续原来的工做。io
git stash git pull git stash pop
这种方法是一种比较广泛的作法,我在开发的时候常常采用这种方法。class
(3)放弃本地的修改,可使用下面的语句。file
git reset --hard FETCH_HEAD git pull
FETCH_HEAD表示上一次成功git pull以后造成的commit点。
注意:git merge会造成MERGE-HEAD(FETCH-HEAD) 。git push会造成HEAD这样的引用。HEAD表明本地最近成功push后造成的引用。