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

git无法提交解决方案--! [rejected] master -> master (non-fast-forward)

使用git上传自己的代码时,是否有小伙伴遇到过,以上的报错情况。

以下是我的解决方案

解决方案

git add 文件名/目录名/.
git commit -m "XXXX"
git push

输入你git的账号

输入你git账号的密码

输入

git merget --no-ff

即可解决

git merget --no-ff介绍

git merge --no-ff是 Git 中用于合并分支的命令,它强制执行普通的合并(创建合并提交),即使当前分支的提交历史是快进(fast-forward)模式。以下是详细说明:

快进合并与普通合并


快进合并(Fast-Forward Merge):如果当前分支的提交历史是线性的,没有分叉,Git 会直接将当前分支的指针移动到目标分支的最新提交,不会创建新的合并提交。这种方式简单高效,但会丢失分支的独立历史记录。
普通合并(Non-Fast-Forward Merge):即使当前分支的提交历史是线性的,git merge --no-ff也会创建一个新的合并提交,将目标分支的最新提交合并到当前分支。这种方式保留了分支的独立历史记录,便于追踪和管理。

使用场景


假设你有一个项目,包含两个分支:main 和 feature。main分支的提交历史为 A → B → C,feature分支从 B 分叉,提交历史为 B → D → E。

  1. 不使用 --no-ff:如果 main分支当前在 C 提交,合并 feature分支时,Git 会执行快进合并,将main 分支指针移动到 E 提交,合并后提交历史为 A → B → C → D → E。
  2. 使用 --no-ff:合并时,Git 会创建一个新的合并提交 F,合并后提交历史为 A → B → C → F(合并提交,包含 D 和 E)。这种方式保留了 feature分支的独立历史记录,便于后续的分支管理和代码审查。

总结


git merge --no-ff用于强制执行普通合并,保留分支的独立历史记录,适用于需要追踪分支开发过程或进行代码审查的场景。

相关文章:

  • 【亲测有用】数据集成平台能力演示(支持国产数据库DaMeng与KingBase)
  • 解锁下一代开发范式:IntelliJ Idea AI插件全景实战与未来展望
  • element-ui layout 组件源码分享
  • ACL初级总结
  • R+VIC模型融合实践技术应用及未来气候变化模型预测
  • Uniapp当中的scroll-view滚动条不出现或者触底刷新事件不触发
  • MySQL DBA 运维常用命令
  • 借助AI驱动的DeepBI:优化广告架构,提升营销策略的精准与前瞻性
  • 携程笔试 2025.3.13
  • docker的anythingllm和open-webui压缩包分享(国内镜像拉取,百度云压缩包分享)
  • 交互式可视化进阶(Plotly Dash构建疫情仪表盘)
  • Centos7系统基于docker下载ollama部署Deepseek-r1(GPU版不踩坑)
  • 【C++ STL】 容器详解:queue 学习
  • 从头开始开发基于虹软SDK的人脸识别考勤系统(python+RTSP开源)(五)完整源码已上传!
  • 基于MySQL有用户管理的音乐播放器
  • Java 虚拟机优化指南:CMS垃圾回收器参数调优与性能监控工具详解
  • obeaver 连接oracle 库 模式乱码
  • XXE-labs靶场通关攻略
  • 【菜鸟飞】通过vsCode用python访问公网deepseek-r1等模型(Tocken模式)
  • cs224w课程学习笔记-第7课
  • 纪念|脖子上挂着红领巾的陈逸飞
  • 没有握手,采用翻译:俄乌三年来首次直接会谈成效如何?
  • 海昏侯博物馆展览上新,“西汉帝陵文化展”将持续展出3个月
  • 特朗普称即将与伊朗达成核协议,外交部:中方愿继续发挥建设性作用
  • 征稿启事|澎湃·镜相第三届非虚构写作大赛暨2026第六届七猫现实题材征文大赛
  • 定制基因编辑疗法治愈罕见遗传病患儿