日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
說說對Gitpull和Gitfetch的理解?有什么區(qū)別?

本文轉(zhuǎn)載自微信公眾號(hào)「JS每日一題」,作者灰灰。轉(zhuǎn)載本文請聯(lián)系JS每日一題公眾號(hào)。

創(chuàng)新互聯(lián),專注為中小企業(yè)提供官網(wǎng)建設(shè)、營銷型網(wǎng)站制作、成都響應(yīng)式網(wǎng)站建設(shè)公司、展示型成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作等服務(wù),幫助中小企業(yè)通過網(wǎng)站體現(xiàn)價(jià)值、有效益。幫助企業(yè)快速建站、解決網(wǎng)站建設(shè)與網(wǎng)站營銷推廣問題。

一、是什么

先回顧兩個(gè)命令的定義

  • git fetch 命令用于從另一個(gè)存儲(chǔ)庫下載對象和引用
  • git pull 命令用于從另一個(gè)存儲(chǔ)庫或本地分支獲取并集成(整合)

再來看一次git的工作流程圖,如下所示:

可以看到,git fetch是將遠(yuǎn)程主機(jī)的最新內(nèi)容拉到本地,用戶在檢查了以后決定是否合并到工作本機(jī)分支中

而git pull 則是將遠(yuǎn)程主機(jī)的最新內(nèi)容拉下來后直接合并,即:git pull = git fetch + git merge,這樣可能會(huì)產(chǎn)生沖突,需要手動(dòng)解決

在我們本地的git文件中對應(yīng)也存儲(chǔ)了git本地倉庫分支的commit ID和 跟蹤的遠(yuǎn)程分支的commit ID,對應(yīng)文件如下:

  • .git/refs/head/[本地分支]
  • .git/refs/remotes/[正在跟蹤的分支]

使用 git fetch更新代碼,本地的庫中master的commitID不變

但是與git上面關(guān)聯(lián)的那個(gè)orign/master的commit ID發(fā)生改變

這時(shí)候我們本地相當(dāng)于存儲(chǔ)了兩個(gè)代碼的版本號(hào),我們還要通過merge去合并這兩個(gè)不同的代碼版本

也就是fetch的時(shí)候本地的master沒有變化,但是與遠(yuǎn)程倉關(guān)聯(lián)的那個(gè)版本號(hào)被更新了,接下來就是在本地merge合并這兩個(gè)版本號(hào)的代碼

相比之下,使用git pull就更加簡單粗暴,會(huì)將本地的代碼更新至遠(yuǎn)程倉庫里面最新的代碼版本,如下圖:

二、用法

一般遠(yuǎn)端倉庫里有新的內(nèi)容更新,當(dāng)我們需要把新內(nèi)容下載的時(shí)候,就使用到git pull或者git fetch命令

fetch

用法如下:

 
 
 
 
  1. git fetch <遠(yuǎn)程主機(jī)名> <遠(yuǎn)程分支名>:<本地分支名>

例如從遠(yuǎn)程的origin倉庫的master分支下載代碼到本地并新建一個(gè)temp分支

 
 
 
 
  1. git fetch origin master:temp

如果上述沒有冒號(hào),則表示將遠(yuǎn)程origin倉庫的master分支拉取下來到本地當(dāng)前分支

這里git fetch不會(huì)進(jìn)行合并,執(zhí)行后需要手動(dòng)執(zhí)行g(shù)it merge合并,如下:

 
 
 
 
  1. git merge temp

pull

兩者的用法十分相似,pull用法如下:

 
 
 
 
  1. git pull <遠(yuǎn)程主機(jī)名> <遠(yuǎn)程分支名>:<本地分支名>

例如將遠(yuǎn)程主機(jī)origin的master分支拉取過來,與本地的branchtest分支合并,命令如下:

 
 
 
 
  1. git pull origin master:branchtest

同樣如果上述沒有冒號(hào),則表示將遠(yuǎn)程origin倉庫的master分支拉取下來與本地當(dāng)前分支合并

三、區(qū)別

相同點(diǎn):

  • 在作用上他們的功能是大致相同的,都是起到了更新代碼的作用

不同點(diǎn):

  • git pull是相當(dāng)于從遠(yuǎn)程倉庫獲取最新版本,然后再與本地分支merge,即git pull = git fetch + git merge
  • 相比起來,git fetch 更安全也更符合實(shí)際要求,在 merge 前,我們可以查看更新情況,根據(jù)實(shí)際情況再?zèng)Q定是否合并

參考文獻(xiàn)

  • https://zhuanlan.zhihu.com/p/123370920
  • https://segmentfault.com/a/1190000017030384
  • https://juejin.cn/post/6844903921794859021

網(wǎng)頁題目:說說對Gitpull和Gitfetch的理解?有什么區(qū)別?
地址分享:http://m.5511xx.com/article/dpopogh.html