git pull 與git fetch的區別

從百度上看到不少關於git fetch 和 git  pull 的不一樣git

實踐一下:github

從github上新建一個項目try,copy到本地。shell

在github網站裏修改readme.txt文件,新增長一句【alter readme】fetch

在本地倉庫的readme.txt也新增長一句,【add some thing】網站

如今想把本地代碼提交到github上,是不能提交的。會出現錯誤提示!!!spa

應該先從遠程倉庫中把代碼下載下來code

(1)用git pull會怎麼樣呢?it

git pull origin master


打開本地倉庫的readme.txt文件ast

git pull:至關因而從遠程獲取最新版本並merge到本地class


(2)使用git fetch命令

接着上面的,咱們把衝突的代碼改了,再提交上去

再在readme.txt文件上增長use fetch 

在本地倉庫的readme.txt文件修改,增長use fetch loca

l


本地提交代碼,並提交代碼,由上面可知,不能提交上去

輸入

git fetch origin master



打開readme.txt文件,沒有任何變化

咱們再輸入

git log -p master..origin/master

能夠查看遠程倉庫中,是誰修改了代碼,和怎樣修改

而後輸入

git merge origin/master

手動merge倉庫

而後咱們來看看readme.txt文件

fetch至關於獲取到github遠程倉庫上修改的代碼,

能夠經過git log -p master..origin/master來查看不一樣

最後根據本身的須要合併代碼


結論:pull至關於fetch操做加上merge操做,

不過fetch好一點,在合併以前能夠查看一下更新狀況。

相關文章
相關標籤/搜索