git pull 与 git push 区别

2023-11-01

git pull 与 git push 区别


结论先行:

1、git pull = git fetch + git merge
2、git fetch 只会将本地库所关联的远程库commit ID 更新到最新
3、git pull 将本地库所关联的远程库commit ID 更新到最新的同时,还自动合并了远程仓库的代码(冲突另外说)

白菜实验一:

人物:小白与小菜
前提:协同开发,关联同一个远程仓库,本地版本相同
假设:小白添加一个25M的 文件后提交并推送到远程仓库

小菜在本地执行 git fetch
执行 git diff / git reflog / git log 结果无差异
执行 git status 提示落后远程仓库一个版本

查看并比较 小白与小菜 的文件夹属性
小白的文件夹明显比小菜的文件夹多了 25M

此时,在本地看不到任何区别,只是知道落后于远程仓库多少个版本
(可以推出: git fetch 只会将本地库所关联的远程库commit ID 更新至最新)

紧接着,小菜在本地执行 git merge
执行 git diff / git status 没有区别
执行 git reflog / git log 看到了版本升级了

查看并比较 小白与小菜 的文件夹属性
两人项目大小差不多,文件基本一样
(可以推出:git merge 才会把文件合并过来,此时才修改本地库代码)

白菜实验二:

人物:小白与小菜
前提:协同开发,关联同一个远程仓库,本地版本相同
假设:小白添加一个25M的文件后提交并推送到远程仓库

小菜在本地执行 git pull
执行 git diff / git status 结果无差异
执行 git reflog / git log 看到了版本升级了

查看并比较 小白与小菜 的文件夹属性
两人项目大小差不多,文件基本一样
(可以推出:git pull 将本地库所关联的远程库commit ID 更新到最新的同时,还自动合并了远程仓库的代码)

(比较两个实验可以发现:git pull = git fetch + git merge)

知识发现:

1、git status 中的一个功能是 比较 本地库commit ID 与 本地库所关联的远程库commit ID 的关系
2、解决冲突后,执行 git diff 无法查看修改了什么,是由于有两个上级导致的
3、谁先在工作区,发生冲突后去解决冲突时,谁就在冲突分割符(=====)的上面

渴望力量:

1、不足之处,望各位小伙伴可以多多指出
2、疑问之处,可以私聊,很开心能一起探讨

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

git pull 与 git push 区别 的相关文章

  • 如何升级 Windows 中 git svn 使用的 SVN 版本?

    我的公司正在将SVN升级到1 7 检查git svn version显示正在使用的SVN版本是1 4 6 我想获得 git svn 使用的 SVN 版本接近 1 7 但是 我没有看到有关更新 git svn 使用的 SVN 版本 在 Win
  • 在 Web 应用程序中显示最新的提交值?

    我有一些 Rails 应用程序 我使用 Git 作为版本控制系统 我使用 GitHub 或 Beanstalk 作为存储库主机 从理论上讲 我想要做的事情非常简单 以某种方式在 Web 应用程序的页脚中显示最新的提交 ID 号 哈希值 这样
  • 如何解决 VS Code 中变基拉取的合并冲突?

    当我做一个git pull rebase 并且我的提交中存在合并冲突 我得到冲突差异视图 解决所有冲突并暂存文件 然后呢 我可以打开终端并运行git rebase continue但是 VS Code 中不应该有一个按钮来完成变基吗 只需使
  • git Blame:合并后正确的作者

    GIT 合并引入了新的提交 这会导致 git Blame 问题 合并的行似乎是由进行合并的开发人员提交的 我可以理解这种情况冲突的变化 因为他解决了冲突 但是有没有办法让非冲突线路不发生这种情况呢 一些 git Blame 的选择 如果没有
  • 致命:无法将 HEAD 解析为有效引用

    我正进入 状态fatal Failed to resolve HEAD as a valid ref 每当我尝试承诺时 我努力了 echo ref refs heads master gt git HEAD 但它不起作用 也尝试过 git
  • 从自己的 gitlab 服务器安装节点模块

    我想从我们的 gitlab 服务器安装节点模块 这是存储库的链接 http ABCD GITLAB myGroup myNodeModule git http ABCD GITLAB myGroup myNodeModule git 根据n
  • 在 Azure DevOps 中为 Wix MSI 文件生成 GUID

    我正在为 Web 服务器应用程序和 Sitecore 前端应用程序设置 Wix 安装程序 我的问题并非特定于 Web 服务器或 Sitecore 我的问题是 Wix 以及如何使用它进行持续交付 1 Wix 需要每个文件和产品本身的 GUID
  • 您的分支比“origin/master”领先 3 个提交

    我在运行时收到以下信息git status Your branch is ahead of origin master by 3 commits 我读过其他一些帖子 解决这个问题的方法是运行git pull rebase但是 rebase
  • 如何生成类似github的影响图?

    是否有一些程序 或者我错过的一些神奇的 git 插件 可以从 git 存储库获取影响图或类似的东西 而无需通过 github 就数据收集而言 我可以生成图表 我不确定从哪里开始编写自己的代码 我假设有一些标志我可以传递给 git log 来
  • 执行 git Push 时出现“diff.renamelimit 变量”警告

    我将本地提交推送到远程 git 服务器并收到以下警告消息 remote warning only found copies from modified paths due to too many files remote warning y
  • 在 .gitconfig 中隐藏 GitHub 令牌

    我想将所有点文件存储在 GitHub 上 包括 gitconfig 这需要我将 GitHub 令牌隐藏在 gitconfig 中 为此 我有一个 gitconfig hidden token 文件 这是我打算编辑并放在隐藏令牌的 git 下
  • 如何让 Gitlab 运行程序在成功构建时将代码合并到分支中

    嗯 标题几乎是不言自明的 总之 如果构建成功 我希望将一个分支 即开发 合并到另一个分支 即生产 我尝试了 jakub kania 解决方案 但我总是得到id rsa invalid format 我认为 gitlab 秘密变量以某种方式被
  • 在 Windows 上使用 Git - 意外丢失了大量工作。我可以拿回来吗?

    我很困惑 我想我已经失去了几个小时的工作时间 我之前在 Git 中编辑了一个文件 我保存了它 但没有提交 我确实做了一些其他文件更改 并提交并推送了它们 然而 有一个文件被搞乱了 所以我单击了最后一次成功的提交 然后按了 回滚到此提交 令我
  • SSL 适用于浏览器、wget 和curl,但不适用于 git

    我有一个网站 用于托管 redmine 和几个 git 存储库 这非常适合 http 但我无法使用 https 进行克隆 即 git clone http mysite com git test git 工作正常 但是 git clone
  • GIT 和 Ruby:如何从 ruby​​ 脚本内部取消设置 GIT_DIR 变量?

    我编写了一个非常简单的 部署 脚本作为我的post update挂钩到我的裸 git 存储库中 变量如下 live domain mydomain com staging domain stage mydomain com git repo
  • 为什么 git 在每次合并时都运行“git gc --auto”?

    今天 git 开始表现得很有趣 嗯 比平时更有趣 坚持运行git gc每次合并后 即使它们是背靠背的 C Projects my current project gt git pull remote Counting objects 31
  • 在 python 中找不到 git 可执行文件

    我试图使用访问密钥克隆 git 存储库 但是当我尝试运行它时 它抛出一个异常 说找不到 git 可执行文件 但我已经安装了 git 并且 in it py 显示了正确的路径 C Program Files Git bin 我还安装了 git
  • git rebase 吃了我的提交!为我翻译“git reflog”输出?

    我已经完成了五次提交 我想在推送它们之前将它们全部合并为一次提交 出于某种原因 我决定尝试通过与通常使用的不同的方式来做到这一点 FWIW 我试图按照此处的说明进行操作http gitready com advanced 2009 02 1
  • git 清除远程仓库

    如果我将错误的初始提交 或多个 推送到远程存储库 并且只想清除 销毁它 我可以通过命令来完成吗 将其从服务器中完全删除非常重要 这样它就不会占用磁盘空间 例如 今天我推送了一个完整的 Visual Studio 项目 其中包含 dll sd
  • 是否可以使用“git gc”来打包引用日志对象?

    正如答案所暗示的https stackoverflow com a 32025729 https stackoverflow com a 32025729我已经配置了远程裸仓库 git config gc pruneExpire never

随机推荐

  • 机器学习——SVM(支持向量机)与人脸识别

    忆如完整项目 代码详见github https github com yiru1225 转载标明出处 勿白嫖 star for projects thanks 目录 系列文章目录 一 SVM的概念与原理 1 SVM简介 2 SVM基本流程
  • JS中cookie的增删改查

    JS中对cookie进行增删改查 以下个人总结 如有错误 请指出修正 cookie简单介绍 cookie是一段有大小限制的文本信息 由于浏览器厂商不同 各个浏览器大小不一致 其伴随着用户请求和浏览器与Web服务器之间传递当用户访问站点时 W
  • 全国省市区编码表

    Excel转sql表 将Excel转换成支持导入的数据格式 本文用csv示例 使用Navicat工具导入我们的csv文件 选择对应的文件格式导入 然后执行下一步 然后就一直无限下一步 就导入成功了哦 下面附上下载链接 如果有帮到你的话请点赞
  • ./nginx: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No

    在CentOS7下配置Nginx 但是一致都在报错 报错信息为 nginx error while loading shared libraries libcrypto so 1 1 cannot open shared object fi
  • Unity3d 离散仿真引擎基础

    Unity3d 游戏 离散仿真引擎基础简答题 1 解释游戏对象 GameObjects 和资源 Assets 的区别与联系 游戏对象 GameObjects 用来表示游戏中具体的角色 道具和场景 它们通过容纳组件 Component 来实现
  • Ubuntu20.04+RTX3090+CUDA11.4+CUDNN8.5.0安装与卸载

    目录 CUDA CUDNN卸载 CUDA CUDNN下载与安装 CUDA CUDNN下载 CUDA CUDNN安装 CUDA CUDNN卸载 CUDA卸载有两种方式 一种是执行CUDA自带的卸载脚本 该脚本位于 usr local cuda
  • 网络驱动->PHY驱动调试

    1 Linux 系统网络协议层架构 网络协议框架图 网络子系统是 linux 操作系统里很重要的一部分 关于这部分有很多的参考资料 这里主要说明一下 phy 芯片在整个子系统里的位置 从这个结构里看到 PHY 驱动的功能处于链路层 以太网物
  • Python实现并发编程

    利用python实现并发编程的方法有 1 多线程 2 多进程 3 多线程 多进程 面试题 进程和线程的区别和联系 进程 操作系统分配内存的基本单位 一个进程可以包含一个或多个线程 线程 操作系统分配CPU的基本单位 并发编程 concurr
  • 我的梦想指引前行与追寻梦想之路

    在毕业季来临之际 我想向即将踏入职场的各位同学们致以真诚的祝福和鼓励 在这个毕业季的到来 让我们满怀梦想和热情 准备好迈出职场的第一步 追逐成功的道路 不断成长和拓展自己的辉煌人生 在大学期间 我有幸参与了一项关于人工智能领域的研究项目 这
  • EF Core CodeFirst 添加表字段表述

    1 通过Fluent API 来添加描述 使用HasComment实现 protected override void OnModelCreating ModelBuilder modelBuilder modelBuilder Entit
  • html视频怎么改大小,对视频大小、比例进行修改

    很多人在刚开始制作视频的时候会问 怎么修改高宽比 怎么做全屏视频 为什么我输出的视频有黑边 我们今天就来把这些问题一并解决了 首先来了解问题的原因 问 为什么输出的视频有黑边 答 当剪辑的视频比例与你所选的项目比例不一致 软件会自动填充黑边
  • 【数学】三角函数及部分微积分函数图象整理

    三角函数及部分微积分函数图象整理 1 三角函数 1 1 cosx secx 1 2 sinx cscx 1 3 tanx cotx 1 4 s e c
  • Easyx简单使用

    创建窗口大小为 initgraph 640 长 480 宽 showconsole 显示控制台 关闭窗口closegraph 绘图函数 例 画圆 radius半径 circle 无填充 fillcircle 有边框填充 solidcircl
  • Study Note:CSIN3 Chapter 2: C# Language Basic

    I should familiar with this chapter If not I should hit the wall 2 1 A First C Program I m very glad to see the first C
  • launch4j

    launch4j 3 5 win32 百度百科 http baike baidu com view 2254377 htm launch4j是Java应用程序的Windows本地 可执行文件 exe 封装器 提供了本地弹出屏幕 应用程序图标
  • 【大数据】HiveQL:索引

    HiveQL 索引 Hive 只有有限的索引功能 Hive 中没有普通关系型数据库中键的概念 但是还是可以对一些字段建立索引来加速某些操作的 一张表的索引数据存储在另外一张表中 这是一个相对比较新的功能 所以目前还没有提供很多的选择 Hiv
  • 计图:5秒训好NeRF!已开源

    金磊 转载整理自 图形学与几何计算量子位 公众号 QbitAI 计图 Jittor 框架的NeRF模型库JNeRF正式开源了 通过JNeRF可以5秒训练好NeRF模型 见图1 Jittor成为首个支持Instant NGP的深度学习框架 图
  • 实时车道线检测和智能告警

    导读 车道线检测 距离告警 转弯曲率半径计算 代码 https github com MaybeShewill CV lanenet lane detection 来自模型的车道线预测 介绍 自动驾驶将在未来十年给旅行带来革命性的变化 目前
  • 揭秘:谷歌是如何考核员工的?看看他们的OKR制度

    谷歌一直给人具有创新精神和人文关怀的公司 但其内部考评制度的曝光让人觉得 谷歌员工的压力也不小 谷歌还是小规模初创公司时 就开始使用一个叫做 目标和关键成果 Objectives and Key Results OKR的内部员工考核制度 O
  • git pull 与 git push 区别

    git pull 与 git push 区别 结论先行 1 git pull git fetch git merge 2 git fetch 只会将本地库所关联的远程库commit ID 更新到最新 3 git pull 将本地库所关联的远