日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

git fetch 与 git pull

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

文章目錄

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

git flow 流程

先來看一張圖吧:

大致流程是這樣的:我們?cè)诒镜?#xff08;工作區(qū))編寫好代碼,然后執(zhí)行g(shù)it命令git add 添加到暫存區(qū),然后使用git commit提交到本地分支,然后使用git push推送到遠(yuǎn)程分支。

git fetch 與 git pull 區(qū)別

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

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

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


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

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

git fetch 工作流程

首先,先得到遠(yuǎn)程庫上master分支的東西:

git fetch origin master

origin是遠(yuǎn)程倉庫默認(rèn)名,如果在 remote add的時(shí)候自己重新取了遠(yuǎn)程倉庫名,那就用自己取的名字;master則是遠(yuǎn)程分支名。

這時(shí)候只是相當(dāng)于從遠(yuǎn)程庫拷了代碼到本地,還沒有和本地的merge,這就是為什么不直接pull,因?yàn)橄萬etch再merge我們就可以先看一下拉取下來的東西,再?zèng)Q定是否merge。

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

git diff yourlocalbranch oringin/master

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

git merge oringin/master

還可以用:

git rebase origin/master

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

git reset merge

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

git remote update

總結(jié)

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

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