惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

有赞技术团队
有赞技术团队
H
Hackread – Cybersecurity News, Data Breaches, AI and More
I
InfoQ
J
Java Code Geeks
Microsoft Security Blog
Microsoft Security Blog
G
Google Developers Blog
D
DataBreaches.Net
Recent Announcements
Recent Announcements
Microsoft Azure Blog
Microsoft Azure Blog
B
Blog RSS Feed
Y
Y Combinator Blog
博客园 - 【当耐特】
博客园 - 聂微东
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
大猫的无限游戏
大猫的无限游戏
P
Proofpoint News Feed
量子位
C
Check Point Blog
F
Fortinet All Blogs
罗磊的独立博客
Last Week in AI
Last Week in AI
GbyAI
GbyAI
L
LangChain Blog
博客园 - 司徒正美

Dlog

数字时代的沉默守护者:致敬 KeePass 之父 Dominik Reichl 🔐 Web Key Directory (WKD) 部署指南 刀锋上的晨间哲学:316L 不锈钢与我的理容仪式 📘 Git 极简生存指南 📘 TortoiseGit 子模块核验手册:如何看懂 PaperMod 改了什么? 📘 TortoiseGit 子模块更新(升级)操作手册 平安夜,给这个 17 岁的数字家园挂上一串代码风铃 🎄 数字世界的火漆印章:我为什么要给博客文章加上 GPG 签名 异星工场蓝图代码 重构实录:Hugo+PaperMod 的终极现代化改造 上帝视角:为 PaperMod 接入 Microsoft Clarity 用户行为分析 Markdown 写作指南:像写代码一样写文章 🛶 “寻路者”的回归:海洋与波利尼西亚文化的重生 PaperMod 主题微调:Profile Mode 下的中文排版精修 告别腾讯 404,重构幽灵页面 南太平洋的极客简史:从石币区块链到草编飞机 数字领土的隐秘江湖:那些关于域名的疯狂往事 R2速率限制规则配置 蝴蝶效应:一张 25MB 的图片,让我买下了 .org 大良印记买锅记 海棠血泪 修复访客地图 PaperMod 中的 Google Analytic 配置 fnOS极简版「智能屏幕管理」方案 fnOS「开机10分钟后自动关闭屏幕」配置方案 Markdown中常用的HTML代码 再看海贼王 修复Microsoft Store应用更新 新旧交替之际 剃须装备
Git的拉取Pull和获取Fetch的区别
Chow Ray · 2021-01-14 · via Dlog
  • 使用git直接提交的话,直接git push

  • 获取最新版本,有两种方法:拉取pull和获取fetch

  • git pull 从远程拉取最新版本 到本地并自动合并,git pull origin master

  • git fetch 从远程获取最新版本到本地,不会自动合并, git fetch origin master
    实际使用中,使用 git fetch 更安全,在合并merge之前可以看清楚更新情况,再决定是否合并。

  1. git fetch 相当于是从远程获取最新到本地,不会自动merge,如下指令:
git fetch orgin master //将远程仓库的master分支下载到本地当前branch中

git log -p master  ..origin/master //比较本地的master分支和origin/master分支的差别

git merge origin/master //进行合并

也可以用以下指令:

git fetch origin master:tmp //从远程仓库master分支获取最新,在本地建立tmp分支

git diff tmp //將當前分支和tmp進行對比

git merge tmp //合并tmp分支到当前分支
  1. git pull:相当于是从远程获取最新版本并merge到本地
git pull origin master

前者 pull,后者 fetchpull 等于 fetch + merge
对于后者,“获取”的含义是命令git fetch,即从远程仓库抓取本地没有的修改;至于前者,大多数情况下,这里“拉取”的含义是git fetch紧接着一个git merge,对应git中的命令git pull,即从远程仓库抓取本地没有的修改并自动合并到远程分支。
由于git pull的结果有时会让我们看不懂,所以显式地使用fetch和merge命令会比较好一些。当然,对于一些简单的情况,前者git pull更方便一点。
如果一定要问二者各自的适用情况的话,我觉得很难说,因为这涉及到很多复杂的情况和其他git命令。我觉得大多数情况下,二者的区别就是我前面说的那样。而且,如果你只使用图形化的版本控制系统的话,就很难碰到或处理这些复杂的情况。

用大白话说一下,拉取会把你本地仓库没有 而远程仓库有的更新写到你本地中,而获取的用处更多的是用来查看对于你本地仓库的状态来说远程仓库是否有更新,并不会使你的本地仓库发生改变。