成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

說說對Git pull 和 Git fetch 的理解?有什么區別?

開發 前端
一般遠端倉庫里有新的內容更新,當我們需要把新內容下載的時候,就使用到git pull或者git fetch命令.

[[417335]]

本文轉載自微信公眾號「JS每日一題」,作者灰灰。轉載本文請聯系JS每日一題公眾號。

一、是什么

先回顧兩個命令的定義

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

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

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

而git pull 則是將遠程主機的最新內容拉下來后直接合并,即:git pull = git fetch + git merge,這樣可能會產生沖突,需要手動解決

在我們本地的git文件中對應也存儲了git本地倉庫分支的commit ID和 跟蹤的遠程分支的commit ID,對應文件如下:

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

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

但是與git上面關聯的那個orign/master的commit ID發生改變

這時候我們本地相當于存儲了兩個代碼的版本號,我們還要通過merge去合并這兩個不同的代碼版本

也就是fetch的時候本地的master沒有變化,但是與遠程倉關聯的那個版本號被更新了,接下來就是在本地merge合并這兩個版本號的代碼

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

二、用法

一般遠端倉庫里有新的內容更新,當我們需要把新內容下載的時候,就使用到git pull或者git fetch命令

fetch

用法如下:

  1. git fetch <遠程主機名> <遠程分支名>:<本地分支名> 

例如從遠程的origin倉庫的master分支下載代碼到本地并新建一個temp分支

  1. git fetch origin master:temp 

如果上述沒有冒號,則表示將遠程origin倉庫的master分支拉取下來到本地當前分支

這里git fetch不會進行合并,執行后需要手動執行git merge合并,如下:

  1. git merge temp 

pull

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

  1. git pull <遠程主機名> <遠程分支名>:<本地分支名> 

例如將遠程主機origin的master分支拉取過來,與本地的branchtest分支合并,命令如下:

  1. git pull origin master:branchtest 

同樣如果上述沒有冒號,則表示將遠程origin倉庫的master分支拉取下來與本地當前分支合并

三、區別

相同點:

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

不同點:

  • git pull是相當于從遠程倉庫獲取最新版本,然后再與本地分支merge,即git pull = git fetch + git merge
  • 相比起來,git fetch 更安全也更符合實際要求,在 merge 前,我們可以查看更新情況,根據實際情況再決定是否合并

參考文獻

 

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

 

責任編輯:武曉燕 來源: JS每日一題
相關推薦

2024-06-26 12:56:06

2021-07-08 06:51:29

React函數組件

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

數據庫性能策略

2021-06-30 07:19:36

React事件機制

2022-08-31 08:33:54

Bash操作系統Linux

2023-12-13 13:31:00

useEffect對象瀏覽器

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(;;)語言

2024-09-09 13:10:14

2022-02-27 15:33:22

安全CASBSASE

2024-03-05 18:59:59

前端開發localhost

2022-08-02 08:23:37

SessionCookies
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本一区二区高清不卡 | 亚洲综合色自拍一区 | 草久久久| 久久影音先锋 | 亚洲三区在线 | 91 在线| 黄网免费 | 国产色爽 | 一区二区免费高清视频 | 日韩av成人| 国产成人免费视频网站视频社区 | 亚洲人人舔人人 | 网站国产| www.日韩av.com| 日韩在线观看精品 | 日韩中文字幕久久 | 国产精品中文字幕在线观看 | www.日韩欧美| 四虎永久免费影院 | 午夜手机在线视频 | 欧美a区 | 国产伦精品一区二区三区照片91 | 狠狠干av | 欧洲一级毛片 | 激情欧美日韩一区二区 | 色888www视频在线观看 | 国产观看| 99久久久无码国产精品 | 日韩中文字幕免费在线观看 | 日本黄色片免费在线观看 | 久久国产区 | 欧美日韩在线精品 | www.日本三级 | 一区二区视频 | 久久久精品国产 | 手机看黄av免费网址 | 另类专区亚洲 | 亚洲精品二区 | 欧美操操操 | 久久亚| 国产成人av免费看 |