当前位置: 首页 > news >正文

git pull还是git pull -r?

👋当代码出现冲突的时候,常见流程是:拉取远端最新代码-》解决冲突-》重新推送

标题的答案是优先使用git pull -r

git pull

git pull相当于git fetch + git merge。会创建一个新的合并提交,保留完整的分支历史

git fetch:获取远程最新信息,但不合并

下载最新的代码和分支信息到本地,不会自动合并到你的当前工作分支,工作区代码不会变化

git fetch  # 获取远程仓库的所有更新
git fetch 分支名  # 只获取远程特定分支的更新

git merge:合并分支更改

将一个分支的更改合并到当前所在的分支,相当于 "把别人的新内容融入到自己的工作中"。

  • 如果两者修改不冲突,会自动合并成一个新的提交,这个提交同时包含双方的更改
  • 如果有冲突,需要你手动选择保留哪些内容,最终形成的版本也是融合了双方正确修改的结果
git merge #合并当前分支的上游分支

git pull -r

git pull -r相当于git fetch + git rebase,会将你的本地提交 "移动" 到远程分支最新提交的后面,形成线性历史

git rebase

将一个分支的修改 “移动” 到另一个分支的最新提交之上,例如master分支上提交内容

  • main 分支的时间线:A → B → C(C 是最新的公共提交)
  • feature 分支的时间线:从 B 分叉出来,你做了两个提交 DE
A → B → C  (main分支,团队最新)↘D → E  (你的feature分支,基于旧的B开发)

git merge

  • 作用:把 main 分支的 C 提交合并到 feature 分支
  • 过程:Git 会在 feature 分支创建一个新的 “合并提交 F”,这个提交同时包含 C(别人的修改)和 E(你的修改)
  • 最终时间线(出现分叉):
A → B → C  (main分支)↘   ↖D → E → F  (feature分支,F是合并提交)

保留了分支的分叉历史,能看出 “你是基于 B 开发,后来合并了 C 的更新”

git rebase

  • 作用:把你的 feature 分支 “重新嫁接” 到 main 最新的 C 提交上
  • 过程:
    1. 先 “暂存” 你的 DE 两个提交
    2. feature 分支 “拉回到” 与 main 同步的 C 提交
    3. 再把暂存的 DE 重新应用到 C 后面(生成新的 D'E',内容和原来的 DE 一样,只是基于的基准变了)
  • 最终时间线(完全线性):
A → B → C  (main分支)↘D' → E'  (你的feature分支,现在基于最新的C开发)

文章转载自:

http://NVWRJeh8.LrpLh.cn
http://YF7J9ewF.LrpLh.cn
http://98mCHflz.LrpLh.cn
http://2vK9UqFs.LrpLh.cn
http://pD9lZbB3.LrpLh.cn
http://6ij29YsS.LrpLh.cn
http://apRKNP5a.LrpLh.cn
http://ZeaDfcZQ.LrpLh.cn
http://5FxuhrEq.LrpLh.cn
http://lsbOyJe8.LrpLh.cn
http://GQRgEhNs.LrpLh.cn
http://8r2Pt5Zv.LrpLh.cn
http://qimmPL7D.LrpLh.cn
http://nBiyhN0L.LrpLh.cn
http://iPpwEujx.LrpLh.cn
http://L4207Vnd.LrpLh.cn
http://33gdc1f2.LrpLh.cn
http://dcDIy96M.LrpLh.cn
http://y5GOxjAU.LrpLh.cn
http://XOPwn293.LrpLh.cn
http://NB4itzt4.LrpLh.cn
http://NMPukuY6.LrpLh.cn
http://Hx9RAaHi.LrpLh.cn
http://YKDjlIAc.LrpLh.cn
http://MKrxvnqw.LrpLh.cn
http://4DFgr768.LrpLh.cn
http://Ilr8dfbu.LrpLh.cn
http://L2leJqBP.LrpLh.cn
http://r8HyxyQY.LrpLh.cn
http://eh059fHc.LrpLh.cn
http://www.dtcms.com/a/383124.html

相关文章:

  • 使用 LMCache + vLLM 提升 AI 速度并降低 GPU 成本
  • 快速排序:高效的分治排序算法
  • stap用法
  • 鸿蒙Next ArkWeb网页文件上传与下载完全指南
  • 云轴科技ZStack AI多语种翻译平台建设实践
  • Android SDK中关于BoardConfig.mk的宏定义继承和覆盖规则
  • 链表与数组
  • 【Python】字符串
  • 【Python】实现一个文件夹快照与比较工具
  • Python的深度学习
  • 自动化测试的概念
  • [QT]信号与槽
  • 高精度运算:大数计算全攻略
  • LeetCode 3302.字典序最小的合法序列
  • 深入解析3x3矩阵:列优先与行优先约定的全面指南
  • Codeforces 1049 Div2(ABCD)
  • 【开题答辩全过程】以 “居逸”民宿预订微信小程序为例,包含答辩的问题和答案
  • AWS IAM 模块全面优化:实现完整生命周期管理与性能提升
  • RK3568 PWM驱动基础知识
  • 贪心算法应用:钢铁连铸优化问题详解
  • 9. LangChain4j + 整合 Spring Boot
  • 返利app的消息队列架构:基于RabbitMQ的异步通信与解耦实践
  • React Native架构革命:从Bridge到JSI性能飞跃
  • Qt---描述网络请求QNetworkRequest
  • XLua教程之Lua调用C#
  • 第七章:AI进阶之------条件语句(if-elif-else)(一)
  • 从希格斯玻色子到QPU:C++在高能物理与量子计算领域的跨界征程与深度融合
  • 二、vue3后台项目系列——安装相关依赖、项目常用辅助开发工具
  • Knockout.js 备忘录模块详解
  • VS2022下载+海康SDK环境配置实现实时预览