在使用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下載