成人免费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-17 07:15:16

Git RebaseGit Merge面試

2021-08-19 08:36:22

Git ResetGit Revert版本

2021-08-10 08:34:12

Git ForkBranch

2022-02-10 09:56:33

git revertgit resetGit

2021-08-09 07:47:40

Git面試版本

2024-09-20 07:38:00

數據庫性能策略

2021-06-30 07:19:36

React事件機制

2021-09-13 09:23:52

TypeScript命名空間

2022-08-31 08:33:54

Bash操作系統Linux

2023-12-13 13:31:00

useEffect對象瀏覽器

2020-03-09 20:56:19

LoRaLoRaWAN無線技術

2022-09-07 18:32:57

并發編程線程

2022-06-06 14:53:02

LoRaLoRaWAN

2022-09-08 18:38:26

LinuxWindowsmacOS

2020-11-09 14:07:53

PyQtQt編程

2021-06-03 08:14:01

NodeProcessJavaScript

2021-12-17 14:40:02

while(1)for(;;)語言

2022-02-27 15:33:22

安全CASBSASE
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩一区在线播放 | 一区二区三区四区在线 | 日本精品视频在线观看 | 综合久| 午夜影院在线观看视频 | www.日韩 | 精品中文字幕一区 | 亚洲视频在线看 | 九九热热九九 | 最新中文字幕一区 | 成人精品在线观看 | 91久久精品国产91久久性色tv | 国产98色在线 | 日韩 | 欧美极品在线视频 | 一级毛片视频 | 在线观看国产 | 久久久久久影院 | 久久男女视频 | 亚洲一视频 | 牛牛热在线视频 | 尤物视频在线免费观看 | 先锋资源亚洲 | 国产一区二 | 一区二区国产精品 | 亚洲国产专区 | 久久精品国产一区二区 | av网站在线播放 | 欧美精品在欧美一区二区 | 一本色道精品久久一区二区三区 | 日韩av电影院 | 国产日产精品一区二区三区四区 | 91精品国产91久久综合桃花 | 毛片免费看 | 国产精品久久久久久久久久不蜜臀 | 日韩精品免费在线观看 | 男女视频91 | 亚洲高清成人在线 | 欧美日韩三级 | 精品福利一区二区三区 | 成人在线免费观看视频 | 美女黄网 |