偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

說(shuō)說(shuō)對(duì)Git pull 和 Git fetch 的理解?有什么區(qū)別?

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

[[417335]]

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

一、是什么

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

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

再來(lái)看一次git的工作流程圖,如下所示:

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

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

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

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

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

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

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

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

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

二、用法

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

fetch

用法如下:

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

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

  1. git fetch origin master:temp 

如果上述沒(méi)有冒號(hào),則表示將遠(yuǎn)程origin倉(cāng)庫(kù)的master分支拉取下來(lái)到本地當(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分支拉取過(guò)來(lái),與本地的branchtest分支合并,命令如下:

  1. git pull origin master:branchtest 

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

三、區(qū)別

相同點(diǎn):

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

不同點(diǎn):

  • git pull是相當(dāng)于從遠(yuǎn)程倉(cāng)庫(kù)獲取最新版本,然后再與本地分支merge,即git pull = git fetch + git merge
  • 相比起來(lái),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

 

責(zé)任編輯:武曉燕 來(lái)源: JS每日一題
相關(guān)推薦

2024-06-26 12:56:06

2021-07-08 06:51:29

React函數(shù)組件

2021-08-19 08:36:22

Git ResetGit Revert版本

2021-08-17 07:15:16

Git RebaseGit Merge面試

2021-08-10 08:34:12

Git ForkBranch

2022-02-10 09:56:33

git revertgit resetGit

2021-08-09 07:47:40

Git面試版本

2021-09-13 09:23:52

TypeScript命名空間

2024-09-20 07:38:00

數(shù)據(jù)庫(kù)性能策略

2021-06-30 07:19:36

React事件機(jī)制

2022-08-31 08:33:54

Bash操作系統(tǒng)Linux

2023-12-13 13:31:00

useEffect對(duì)象瀏覽器

2021-06-03 08:14:01

NodeProcessJavaScript

2021-05-16 14:26:08

RPAIPACIO

2024-05-27 00:40:00

2021-12-17 14:40:02

while(1)for(;;)語(yǔ)言

2024-09-09 13:10:14

2022-02-27 15:33:22

安全CASBSASE

2024-03-05 18:59:59

前端開(kāi)發(fā)localhost

2022-08-02 08:23:37

SessionCookies
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)