Git pull时出错

在使用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后造成的引用。

相关文章
相关标签/搜索