Github 下載代碼時如何強制覆蓋本地文件

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

相關文章
相關標籤/搜索