在使用Git(Github,GitStash等)都是经过分支概念来协同操做。最近遇到一个问题,帮同事review code的时候 ,当我切换到别人的已提交分支的时候,同时我本地代码有更改,这时候执行git
git pull
发如今项目的上面有向下的箭头而且显示多少数字,显示远程代码没下下载下来,有一个简单粗暴的解决方法就是删除本地代码,从git 上从新down一份fetch
git clone .....
这显示不是一个好的方案,不到万不得已,千万不要使用,虽然百分百有效,可是同时影响时间。code
下面说第二种 经过reset 方式来下载而且覆盖本地代码。get
在此以master分支来举例,须要执行的时候要换成本身分支的名字it
git fetch origin master(master也能够替换成你本身想更新的分支名) git reset --hard master git pul
fetch origin branch 是从远程获取最新代码 如何执行 fetch --all 是获取全部分支,通常没有必要。io
以上能够强制下载最新git代码,但若是想要保存本地local文件,同时下载最新代码叫,这也是能够实现的。ast
git checkout master git branch new-branch-to-save-current-commits git fetch origin master git reset --hard master
在fetch以前,建立一个新的分支,这样本地的change会被存储在新建的分支里,注意这个local change必须是commited,未commited仍是要被覆盖的!file
这里有详细的评论,我抽取了其中精华部分,本身在项目中已使用。 http://stackoverflow.com/questions/1125968/how-to-force-git-pull-to-overwrite-local-files/8888015#8888015下载