日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

git fetch 与 git pull

發(fā)布時間:2025/3/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 git fetch 与 git pull 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

    • git flow 流程
    • git fetch 與 git pull 區(qū)別
    • git fetch 工作流程

git flow 流程

先來看一張圖吧:

大致流程是這樣的:我們在本地(工作區(qū))編寫好代碼,然后執(zhí)行git命令git add 添加到暫存區(qū),然后使用git commit提交到本地分支,然后使用git push推送到遠程分支。

git fetch 與 git pull 區(qū)別

那么本地如果需要同步遠程倉庫的代碼,一般是兩種做法,一種是使用git fetch先將遠程代碼拿下來,然后再合并到本地分支;第二種就是直接使用git pull將遠程代碼直接與本地代碼進行合并,包括本地分支和遠程分支。

看下圖,git fetch 命令更新代碼,本地的庫中master的commitID不變,但是與git上面關聯(lián)的那個orign/master的commit ID變成了和遠程代碼庫相同了。這時候我們本地相當于存儲了兩個代碼的版本號,我們還要通過merge去合并這兩個不同的代碼版本,如果這兩個版本都修改了同一處的代碼,這時候merge就會出現(xiàn)沖突,然后我們解決沖突之后就生成了一個新的代碼版本。

而下面的git pull命令會將本地的代碼更新至遠程倉庫里面最新的代碼版本,包含本地的分支,如果出現(xiàn)沖突,也需要手動解決。


雖然git pull看起來像git fetch+get merge,但是根據(jù)commit ID來看的話,他們實際的實現(xiàn)原理是不一樣的。

這里建議是分兩步做,在merge前可以看修改了什么內(nèi)容,是否有沖突的代碼,可以提前解決,防止沖突。

git fetch 工作流程

首先,先得到遠程庫上master分支的東西:

git fetch origin master

origin是遠程倉庫默認名,如果在 remote add的時候自己重新取了遠程倉庫名,那就用自己取的名字;master則是遠程分支名。

這時候只是相當于從遠程庫拷了代碼到本地,還沒有和本地的merge,這就是為什么不直接pull,因為先fetch再merge我們就可以先看一下拉取下來的東西,再決定是否merge。

如果要在本地分支查看和剛剛拷下來的東西有什么區(qū)別,就用:

git diff yourlocalbranch oringin/master

下來就是在當前分支上,合并origin/master,就要用merge了:

git merge oringin/master

還可以用:

git rebase origin/master

如果有沖突,那就解決沖突,再commit。若實在解決不了弄得亂七八糟想恢復可以:

git reset merge

還有就是如果明明添加了遠程分支,但是用 git branch -a又看不到,怎么辦呢?運行:

git remote update

總結

以上是生活随笔為你收集整理的git fetch 与 git pull的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。