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

Git推送,提交合并,以及hint: Updates were rejected because the tip of your current branch is behind

我练习代码的仓库,主分支main和我常使用的master分支,落后太多版本了,如何将master分支内容合并到main分支,main分支再推送到远端仓库呢?(我本地的名称和远端一致)。

新建main分支并签出到main分支。Git命令是

git checkout -b main

然后就是将master分支合并到main分支中,具体命令就是

git merge master

然后检查发现main分支的内容都同步的和master一样了。

最后把,内容推送到远端的main中就行,Git命令是

git push origin main

由于是从最新的代码中签出的,所以,想要合并,推送就很容易。但是,如果出现冲突呢?看我下一篇文章

具体来说,遇到的问题本质是:

  • 本地main分支的基础版本落后于远端main分支(远端有其他提交)。

  • 你本地也有自己的提交(可能是之前未推送的改动)。

  • 直接git push会被拒绝,因为 Git 要求本地必须是远端的直接后继(fast-forward)。

个人开发或者小团体:

# 1. 拉取远端代码,并将你本地的提交“垫”到远端最新提交之后 git pull --rebase origin main # 2. 如果变基过程中出现冲突,解决冲突后执行: git add . git rebase --continue # 3. 推送(由于变基改变了历史,可能需要强制推送) git push origin main --force-with-lease

企业开发:

git pull origin main # 这会自动 merge,产生一个合并提交 git push origin main

解决方案(rebase)的思路是:

  1. git pull --rebase将远端的提交先拉下来,然后把你本地的提交逐个“垫”到远端最新提交的后面

  2. 这样,你的本地历史就变成了“基于远端最新提交之上”的样子,相当于你是在远端的最新基础上做的修改。

  3. 此时本地分支已经是远端的直接后继,理论上可以正常推送。但因为 rebase 改变了提交哈希,Git 仍然认为这不是快进(因为远端记录的哈希和本地不同),所以需要用--force-with-lease来“告诉” Git:我知道历史变了,但我确认远端没有其他新提交,请覆盖。

另一种思路(merge):

  1. 使用git pull --no-rebase(即默认的git pull)会将远端的提交和本地的提交合并成一个新的合并提交,形成分叉再合并的历史。

  2. 这样本地分支仍然是远端的后代(因为有合并提交作为桥梁),可以直接git push而不需要强制推送。

  3. 代价是多了一个合并提交,历史图会显得不那么线性。

http://www.jsqmd.com/news/1210920/

相关文章:

  • React性能优化:PureComponent与memo实战指南
  • Movement Pruning: Adaptive Sparsity by Fine-Tuning 解读
  • 飞腾 D3000M 迷你国产核心板硬件方案解析|狭小舱体高算力机载整机选型指南
  • NVIDIA Isaac Lab:机器人强化学习的仿真训练与Sim2Real迁移实战
  • AI给大学生带来的撕裂感:一个top3本科生的四年自述与架构师解读
  • 银行级多维聚合实战:滚动窗口、unstack与自定义聚合的生产规范
  • [Loop Engineering在MAF中的实现-05]MAF预定义的评估器
  • 三维地图引擎选型指南:Cesium与Mapbox对比
  • PHP开发者必备资源大全与工具链指南
  • 天津宝珀回收价格查询与靠谱平台实测排行(2026年7月最新) - 收的高名表回收平台
  • Python程序打包实战:PyInstaller详解与最佳实践
  • C++构建高性能教育推荐系统:架构设计与工程实践
  • WPF 六大集合容器控件完整对比
  • OpenAI全内部安全委员会:AI治理从外部合规到内生能力的范式转变
  • 技术平权——眨眼猫打造“一顿饭的会务智能体”,让每一场会务活动都能拥有自己的智能体小程序!
  • AI如何学会听懂无文字的闽南语:任务驱动的方言建模实践
  • AI落地物理世界的五大断点与七步实操法
  • 腾讯:长时终端任务密集评测基准
  • ROS2在Ubuntu 22.04上的安装与优化指南
  • 4.Deep Dream 模型
  • 寒假笔记5
  • GPT服务订阅技术解析:支付失败、区域限制与工程实践
  • Java内存泄漏排查终极手册:工具+步骤+真实案例复盘
  • 2026年7月最新卡地亚北京双安商场维修保养服务电话 - 卡地亚官方售后中心
  • Spring Gateway+Sa-Token+Nacos构建微服务统一认证方案
  • STM32驱动DHT11温湿度传感器:单总线协议与代码实现详解
  • 2026年北京市生成式人工智能大模型备案综合分析报告
  • 【慕伏白】如何在远程公共服务器部署个人深度学习 Docker 环境(With GPUs)
  • Java工程师进阶指南:从基础到高级的技术成长路径
  • Android开发全流程:从系统架构到性能优化